这是因为被static声明的类静态数据成员,其 实体 远在main()函数开始之前就已经在全局数据段中诞生了(《Inside the C++ Object Model》page247)!其生命期和类对象是异步的,这是最主要的原因。静态语意说明即使没有类实体的存在,其静态数据成员的实体也是存的,这个时候对象的生命期还没有开始,如果你要到类中去初始化类静态数据成员,让静态数据成员的初始化依赖于类的实体,那怎么满足前述静态语意呢?难道类永远不被实例化,我们就永远不能访问到被初始化的静态数据成员吗?
这是因为被static声明的类静态数据成员,其 实体 远在main()函数开始之前就已经在全局数据段中诞生了(《Inside the C++ Object Model》page247)!其生命期和类对象是异步的,这是最主要的原因。静态语意说明即使没有类实体的存在,其静态数据成员的实体也是存的,这个时候对象的生命期还没有开始,如果你要到类中去初始化类静态数据成员,让静态数据成员的初始化依赖于类的实体,那怎么满足前述静态语意呢?难道类永远不被实例化,我们就永远不能访问到被初始化的静态数据成员吗?
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。