class Cstatic
{
public:
Cstatic()
{
val++;
}
static int val;
};
在我Cstatic cs1;的时候,
是不是就会走到构造函数.
那么此时的val的初始值是0吗?为什么呢
一个类内static变量的初始值问题
答案:2 悬赏:50 手机版
解决时间 2021-03-23 18:38
- 提问者网友:太高姿态
- 2021-03-22 18:33
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-03-22 18:48
不会的,如果只是Cstatic cs1,是通不过编译的,因为系统找不到val初始语句~
所以类外应加上
int Cstaic::val = 12;
另:静态成员是不占用对象的空间的,因为所有同类对象只存在一份静态成员~
这个用来计数用最好~
所以类外应加上
int Cstaic::val = 12;
另:静态成员是不占用对象的空间的,因为所有同类对象只存在一份静态成员~
这个用来计数用最好~
全部回答
- 1楼网友:白昼之月
- 2021-03-22 19:53
初值 一般来说按类型的不同而不同
int 0
char '0'
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯