永发信息网

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

答案:2  悬赏:50  手机版
解决时间 2021-03-23 18:38
  • 提问者网友:太高姿态
  • 2021-03-22 18:33
class Cstatic
{

public:
Cstatic()
{
val++;
}

static int val;
};

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

那么此时的val的初始值是0吗?为什么呢
最佳答案
  • 五星知识达人网友:愁杀梦里人
  • 2021-03-22 18:48
不会的,如果只是Cstatic cs1,是通不过编译的,因为系统找不到val初始语句~
所以类外应加上
int Cstaic::val = 12;

另:静态成员是不占用对象的空间的,因为所有同类对象只存在一份静态成员~
这个用来计数用最好~
全部回答
  • 1楼网友:白昼之月
  • 2021-03-22 19:53
初值 一般来说按类型的不同而不同 int 0 char '0'
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯