首页 > 其他 > 详细

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

时间:2019-03-12 13:19:07      阅读:172      评论:0      收藏:0      [点我收藏+]

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

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

原文:https://www.cnblogs.com/justaname/p/10515874.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!