一个类内static变量的初始值问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 05:38:09
class Cstatic
{

public:
Cstatic()
{
val++;
}

static int val;
};

在我Cstatic cs1;的时候,
是不是就会走到构造函数.

那么此时的val的初始值是0吗?为什么呢

不会的,如果只是Cstatic cs1,是通不过编译的,因为系统找不到val初始语句~
所以类外应加上
int Cstaic::val = 12;

另:静态成员是不占用对象的空间的,因为所有同类对象只存在一份静态成员~
这个用来计数用最好~