标签:构造 art 没有 order 类类型 pac 就是 关键字 count
在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样
为什么?因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的。
能在类中初始化的成员只有一种,那就是静态常量成员。
这样不行
这样也不行
但是这样可以
结论:
总结如下表:
类型 初始化方式 |
类内(声明) |
类外(类实现文件) |
构造函数中 |
构造函数的初始化列表 |
非静态非常量数据成员 |
N |
N |
Y |
Y |
非静态常量数据成员 |
N |
N |
N |
Y (must) |
静态非常量数据成员 |
N |
Y (must) |
N |
N |
静态常量数据成员 |
Y |
Y |
N |
N |
以下三种类型必须通过初始化列表来初始化
1.非静态 常量
2. 引用类型
3. 没有默认构造函数的类类型
链接:https://blog.csdn.net/sylar2016/article/details/79257175
标签:构造 art 没有 order 类类型 pac 就是 关键字 count
原文地址:https://www.cnblogs.com/zhihaospace/p/11986624.html