一个类内static变量的初始值问题
来源:百度知道 编辑:UC知道 时间:2024/09/22 05:38:09
class Cstatic
{
public:
Cstatic()
{
val++;
}
static int val;
};
在我Cstatic cs1;的时候,
是不是就会走到构造函数.
那么此时的val的初始值是0吗?为什么呢
{
public:
Cstatic()
{
val++;
}
static int val;
};
在我Cstatic cs1;的时候,
是不是就会走到构造函数.
那么此时的val的初始值是0吗?为什么呢
不会的,如果只是Cstatic cs1,是通不过编译的,因为系统找不到val初始语句~
所以类外应加上
int Cstaic::val = 12;
另:静态成员是不占用对象的空间的,因为所有同类对象只存在一份静态成员~
这个用来计数用最好~