C++ 在类(C+;+;)中创建静态变量
所以我是一个编程高手,我不确定为什么我不能在我的课堂上创建一个静态变量?我从课堂上得到了一个问题,我不确定我是否走对了。 问题是:创建一个具有静态成员项的类,以便在创建新对象时 创建时,可以报告类的对象总数 这是我目前的代码:C++ 在类(C+;+;)中创建静态变量,c++,class,static-members,C++,Class,Static Members,所以我是一个编程高手,我不确定为什么我不能在我的课堂上创建一个静态变量?我从课堂上得到了一个问题,我不确定我是否走对了。 问题是:创建一个具有静态成员项的类,以便在创建新对象时 创建时,可以报告类的对象总数 这是我目前的代码: #include <iostream> class ObjectCount { public: ObjectCount(); void reportObjectNo(); private: static int objectNo =
#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;
}
如果已经有人问过,我真诚地道歉,但是我找不到任何对我有帮助的东西,如果有链接,我将不胜感激:)错误消息告诉您不能从类内部初始化非
常量
成员。这意味着您需要更改代码,使其看起来更像:
class ObjectCount
{
public:
ObjectCount();
void reportObjectNo();
private:
static int objectNo;
};
int ObjectCount::objectNo = 0;
C++允许您在类主体中仅声明和定义静态常量整数类型
class Foo
{
static const int xyz = 1;
};
非常量静态成员变量必须在类中声明,然后在类外部定义。您可以在实现文件ie.cpp中定义它
int ObjectCount::objectNo = 0;
而且,正确的使用方法是
ObjectCount::objectNo++;
因为,objectNo与类关联,而不与任何对象关联。可能与
ObjectCount::objectNo++;