所以我是一个编程新手,我不确定为什么我不能在我的课堂上做一个静态变量吗?我上课时遇到了一个问题,我不确定是否要正确解决问题。问题是:用静态成员项创建一个类,以便每当创建一个新对象时,都可以报告该类的对象总数。
到目前为止,这是我的代码:
#include <iostream>
class ObjectCount
{
public:
ObjectCount();
void reportObjectNo();
private:
static int objectNo = 0;
};
ObjectCount::ObjectCount()
{
objectNo++;
}
void ObjectCount::reportObjectNo()
{
std::cout << "Number of object created for class ObjectCount: " << objectNo << std::endl;
}
int main()
{
ObjectCount firstObject;
firstObject.reportObjectNo();
ObjectCount secondObject;
secondObject.reportObjectNo();
ObjectCount thirdObject;
thirdObject.reportObjectNo();
return 0;
}
我得到的错误是:
ISO C++ forbids in-class initialization of non-const static member 'objectNo'
line 9
如果您已经提出了要求,我深表歉意,但是如果有任何链接,我们将不胜感激:)
错误消息告诉您不能从类内部初始化非const
static
成员。这意味着您将需要更改代码,使其看起来更像:
class ObjectCount
{
public:
ObjectCount();
void reportObjectNo();
private:
static int objectNo;
};
int ObjectCount::objectNo = 0;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句