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

这是因为被static声明的类静态数据成员,其 实体 远在main 函数开始之前就已经在全局数据段中诞生了 Inside the C Object Model page 其生命期和类对象是异步的,这是最主要的原因。静态语意说明即使没有类实体的存在,其静态数据成员的实体也是存的,这个时候对象的生命期还没有开始,如果你要到类中去初始化类静态数据成员,让静态数据成员的初始化依赖于类的实体,那怎么满足前 ...

2019-03-12 12:10 0 682 推荐指数:

查看详情

为什么static成员变量一定要在初始化?

为什么静态成员不能在初始化? 在C++中,的静态成员static member)必须在内声明,在初始化,像下面这样。 或者只进行定义不赋初始值,但是默认值是否是0,可能会与具体的编译器有关吧? 为什么? 因为静态成员属于整个,而不属于某个对象,如果在初始化 ...

Wed Jul 01 02:16:00 CST 2020 0 1122
为什么static数据成员一定要在初始化?(转)

1.避免重复定义和初始化 <<c++ primer>>说在定义和初始化是保证static成员变量只被定义一次的好方法。 但,为什么static const int就可以在里面初始化呢? 想起C中一个函数里定义一个static变量是为了保证只初始化一次 ...

Wed Sep 18 06:55:00 CST 2013 0 10726
C++的静态成员变量一定要初始化(分配内存)

文章转载自https://my.oschina.net/u/1537391/blog/219432 https://blog.csdn.net/vict_wang/article/details/80994894 我们知道C++的静态成员变量是需要初始化的,但为什么要初始化呢。其实这句 ...

Thu Apr 30 16:26:00 CST 2020 0 1478
C++ 中的static成员初始化和特点

C++ 中的static成员初始化和特点 #include <iostream> using namespace std; class Test { public: Test() : y(1), r(y), d(3){} //对于常量型成员变量和引用型成员变量 ...

Fri Mar 15 22:46:00 CST 2019 0 1947
C++中静态成员变量要在外部再定义或初始化的原因

C++中静态成员变量要在外部再定义或初始化,否则会产生错误。 class A { public: static int a; }; int A::a=0;   为什么要在的外部进行定义的原因: 1. 在中,只是声明了静态变量,并没有定义。 2. 声明只是表明了变量 ...

Tue Sep 25 00:04:00 CST 2018 0 3338
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM