这是因为被static声明的类静态数据成员,其 实体 远在main()函数开始之前就已经在全局数据段中诞生了(《Inside the C++ Object Model》page247)!其生命期和类对象是异步的,这是最主要的原因。静态语意说明即使没有类实体的存在,其静态数据成员的实体也是存的,这个时候对象的生命期还没有开始,如果你要到类中去初始化类静态数据成员,让静态数据成员的初始化依赖于类的实体,那怎么满足前述静态语意呢?难道类永远不被实例化,我们就永远不能访问到被初始化的静态数据成员吗?

转载于:https://www.cnblogs.com/justaname/p/10515874.html

为什么static成员一定要在类外初始化?相关推荐

  1. 为什么static成员必须在类外初始化

    为什么静态成员不能在类内初始化 在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样. class A { private:static int count ...

  2. 关于“只有静态常量整型数据成员才可以在类中初始化”

    关于"只有静态常量整型数据成员才可以在类中初始化" 关于类中的静态成员变量, 在类中只能声明,不能定义 注意在类的内部只是声明,不是定义 类中的静态变量是属于类的,不属于某个对象! ...

  3. 在类内定义成员函数、在类外定义成员函数、计算长方体的体积【C++面向对象编程类的使用经典案例】

    文章目录 一.在类内定义成员函数 二.在类外定义成员函数(使用符号::) 三.计算3个长方体的体积(class成员函数) 一.在类内定义成员函数 #include <iostream> u ...

  4. C++有的地方为什么要类内定义,类外实现(类内声明,类外初始化)?

    在函数非常大的时候类外实现可以增加可读性,而且分文件的时候一般是头文件写类,cpp文件写函数类外实现 参考文章:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难

  5. C++ 类的知识 | 构造函数再探、匿名对象、友元函数、内部类、类的const成员、类的static成员

    文章目录 构造函数再探 以下代码共调用多少次拷贝构造函数 委托构造函数 概念 形式 匿名对象 友元 友元的声明 友元类 令成员函数作为友元 函数重载和友元 注意 内部类 特性 类的const成员 可变 ...

  6. 账户Account类文件编写(static成员使用)

    static类成员是该类所有成员共享一份的数据,一处修改了,全部变更: static成员函数只能调用static成员数据: static const整形int,char,可以在类内声明和初始化,类外不 ...

  7. C++类中的static数据成员,static成员函数

    文章转自:http://www.cnblogs.com/gysm/archive/2011/09/16/2179277.html 版权归原作者. C++类中谈到static,我们可以在类中定义stat ...

  8. C++ 类中的static成员的使用及单例设计示例

    文章目录 static 静态成员变量 static静态成员函数 单例设计模式 单例实现图片资源的封装(很实用) 静态成员:被static修饰的成员变量\函数 可以通过对象(对象.静态成员).对象指针( ...

  9. C++知识点61——typename与class、模板编程与继承、模板类和友元、类模板与static成员

    一.typename与class的异同 1.啥时候既可以使用typename,又可以使用class? 当表示模板参数的时候,二者没有区别 2.啥时候只能使用typename,不能使用class? 当模 ...

最新文章

  1. 透彻,在SpringBoot项目中使用Netty实现远程调用
  2. mysql 安装 菜鸟_mysql安装
  3. 02_混淆矩阵、准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F值(F-Measure) +Roc曲线和PR曲线+sklearn中分类模型评估API+ 自己补充整理
  4. MySQL中用户授权/删除授权的方法
  5. Python并发与并行的新手指南
  6. 《C#高级编程》中文第七版 读书笔记(目录阐述)
  7. C#之不得不上的网站。
  8. Boost Log : Trivial logging with filters
  9. caffe绘制训练过程的loss和accuracy曲线
  10. 博文视点架构师成长书单,5本书助你少走弯路
  11. vue-json-editor高度调整
  12. mapgis考试11
  13. vbs模拟键盘和鼠标输入
  14. 博士申请 | 香港城市大学计算机学院徐伟涛老师组招收人工智能全奖博士生
  15. 离职结婚面试买房蚂蚁上市—过山车般魔幻的2020
  16. ERROR 1366 (HY000): Incorrect string value: '\xCA\xD6\xBB\xFA\xCA\xFD...' for column 'cname' at row
  17. Redis 持久化——RDB 详解
  18. VSCode 配置Java环境
  19. 网络安全笔记1——Internet协议的安全性
  20. GeoGebra Classic 5 for Mac(免费动态数学教育软件)

热门文章

  1. OpenGL的简单研究-开端
  2. C# 中对WinForm窗体中的控件快速设置TableIndex次序
  3. QPushButton
  4. 解决git提交敏感信息(回退git版本库到某一个commit)
  5. SQL循环执行while控制
  6. bitnami-redmine邮件告警配置
  7. ADAS越来越热,这家公司为何能俾睨群雄
  8. 深度学习框架的评估与比较
  9. js实时监听窗口变化总结
  10. 与其雇人杀虫不如购买杀虫剂