一个类有一个私有的静态成员,如下所示:{ static int count;在定义了类之后,count属性立即初始化为零,如下所示:来自Java/C#领域的我很难理解count在哪一点被初始化为零?我的最后一个问题是,既然count属性是私有的,那么当它在类定义之外初始化时,它的可见性不应该受到限制吗?
谢谢
main() int x = 5; return (0);使用gcc编译它,会产生行static int y = x;的错误,因为“初始化元素不是常量我假设这是由于y是一个静态变量,它的存储位置(数据/bss)和初始值需要在编译时知道。
但是,在用g++编译时,我没有发现任何错误,程序运行良好(打印y打印5)。如果是这样,为什么可以对c++中的静态变量进行这样的初始化?
原则上,在任何函数外部定义的变量(即全局变量、名称空间变量和类静态变量)在调用main()之前被初始化。翻译单元中的这种非局部变量按照它们的声明顺序进行初始化
以上是我的讲师给出的课堂笔记中的几行。错误为C++ requires a type specifier for all declarations