这种写法是不对的,因为类成员的声明是针对于类来说的,赋值其实是具体某个实例才会出现的,因此这样做不对.初始化要放在初始化列表或者构造函数中:
class A
{
int a;
int b ;
A::A(b=0)
{
}
}
class A
{
int a;
int b ;
A::A()
{
b =0;
}
}
但是如果是
class A
{
int a;
static int b = 0;
}
这样写就没问题了,应为b是静态类型的,不依赖于某一个对象而存在,是所以类的实例所共享的。