用static修饰的成员一定要在全局空间中定义并初始化
该结构的所有变量将共享静态成员的一个值
无论是否说明该结构的变量,该结构的静态成员都已经存在
不能用某个结构变量::静态成员来改变静态成员的值
class A { private: static int count ; // 类内声明 }; int A::count = 0 ; // 类外初始化,不必再加static关键字
class A { private: static int count = 0; // 静态成员不能在类内初始化 };
class A { private: const int count = 0; // 常量成员也不能在类内初始化 };
class A { private: static const int count = 0; // 静态整型常量成员可以在类内初始化
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的。
例外:能在类中初始化的成员只有一种,那就是静态常量成员。
这样不行
这样也不行
但是这样可以
因此A中描述是错误的。静态常量成员可以在类内初始化。