为什么static成员必须在类外初始化,而不能在类的头文件中初始化
来源:互联网 发布:软件测试严重程度 编辑:程序博客网 时间:2024/05/19 01:59
在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。
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; // 静态常量成员可以在类内初始化};
转载http://www.cnblogs.com/graphics/archive/2010/07/07/1772733.html
0 0
- 为什么static成员必须在类外初始化,而不能在类的头文件中初始化
- 为什么static数据成员必须在类外初始化
- 为什么static成员必须在类外初始化
- 为什么static成员必须在类外初始化
- 为什么static成员必须在类外初始化
- 为什么static成员必须在类外初始化
- 为什么static成员必须在类外初始化
- static成员必须在类外初始化
- static成员必须在类外初始化
- static成员必须在类外初始化
- static成员必须在类外初始化
- static成员必须在类外初始化
- static成员必须在类外初始化
- 【c++】为什么类中静态(static)成员不能在类的定义内初始化?
- 为什么静态成员必须在类外初始化
- 为什么static数据成员一定要在类外初始化?
- 为什么static数据成员一定要在类外初始化?
- 为什么static数据成员一定要在类外初始化?
- Codeforces738C-Road to Cinema(二分答案+贪心)
- 第四十四天学习笔记
- 记NOIP2016
- 权值
- Hiho 125 GeoHash一·编码解码
- 为什么static成员必须在类外初始化,而不能在类的头文件中初始化
- codeforces - 738B - Spotlights (瞎搞)
- 自定义流式布局
- Android WebView中JS和Java沟通机制
- uploadify取消文件上传
- GitHub无法上传jar包解决办法
- C#集合的总结
- 学习技术。
- 463. Island Perimeter