cpp关于静态变量类外初始化求助
c吧
全部回复
仅看楼主
level 1
gkd♋♋
楼主
我类内定义了一个静态变量 如static int a;这里不是声明了数据类型吗,为什么类外初始化还得加上int。本人很菜,希望解答
2023年11月07日 12点11分
1
level 3
风刻铭
如果你不加上类型声明,那就属于赋值,而非初始化。
区别在于,赋值是对已有的东西给予新的状态。初始化使原不存在的东西存在,然后赋予状态。
你在类里面声明一个静态变量,然后在类外面重复声明它并且赋值,这是合法的。你再类里面声明一个静态变量,然后在类外面对他赋值,这是非法的。因为类里面的静态变量并不开辟空间,你不能对着不存在的东西进行赋值,所以只有在类外声明一遍然后创造空间进行赋值。
2023年11月09日 01点11分
2
gkd♋♋
谢谢
2023年11月10日 11点11分
1