初始化静态类成员
问题描述:
如果我尝试初始化obj_s
它要求我将其设置为const
- 而且我不能这样做,因为我必须保持创建对象的数量。初始化静态类成员
#include<iostream>
class A
{
static int obj_s=0;
public:
A(){ ++obj_s;cout << A::obj_s << "\nObject(s) Created\n"; }
};
int main()
{
A a,b,c,d;
}
下面的代码不断给我以下错误:
[Linker error] undefined reference to `A::obj_s'
答
[解决]
的代码给出错误,因为没有在第二种情况下得到创建的对象,并在第一个它不初始化,它应该的方式 - 这里是固定的代码:
#include<iostream>
class A
{
static int obj_s;
public:
A()
{ obj_s++; std::cout << A::obj_s << "\nObject(s) Created\n" ; }
};
int A::obj_s=0; // This is how you intialize it
int main()
{
A a ,b,c,d;
}