原文:c++语言中类中的静态数据成员为什么必须在类体外初始化?

静态成员属于全局变量,是所有实例化以后的对象所共享的,而成员的初始化你可以想象成向系统申请内存存储数据的过程,显然这种共有对象必须提前申请好,而不是由某个实例化的对象来操纵的。 include lt stdio.h gt class A public: static int a 声明但未定义 int main printf d , A::a return 编译以上代码会出现 对 A::a 未定义的 ...

2018-03-28 10:53 0 1001 推荐指数:

查看详情

C++静态成员初始化

静态成员初始化: 与全局对象一样对于静态数据成员在程序也只能提供一个定义,这意味着静态数据成员初始化不应该被放在头文件而应该放在含有的非inline函数定义的文件。 转自:http://blog.csdn.net/veryday_code/article/details ...

Tue Mar 22 06:22:00 CST 2016 0 1685
c++】必须在初始化列表初始化的几种情况

1. 成员为const类型 2. 成员为引用类型 究其因 const对象或引用只能初始化但是不能赋值。构造函数的函数体内只能做赋值而不是初始化,因此初始化const对象或引用的唯一机会是构造函数函数体之前的初始化列表。 从无到有叫初始化初始化(调用拷贝构造函数)创建 ...

Tue Dec 17 17:07:00 CST 2013 1 14033
C++ 静态成员初始化

一般来说,关于C++静态成员初始化,并不会让人感到难以理解,但是提到C++ 静态成员的"初始化"那就容易迷糊了。 我们来看如下代码: 我们需要判断上面的静态数据成员的声明和定义有没有错误,并解释原因。 首先,要谨记:通常情况下,不应该在内部初始化成员,无论是 ...

Wed Oct 22 02:38:00 CST 2014 1 26071
c++可以对私有成员静态变量初始化吗?

转载http://www.cnblogs.com/carbs/archive/2012/04/04/2431992.html 1.static成员的所有者是本身和对象,但是多有对象拥有一样的静态成员。从而在定义对象时不能通过构造函数对其进行初始化。 2.静态成员不能在定义里边初始化,只能 ...

Thu Aug 15 05:52:00 CST 2013 0 2756
c++可以对私有成员静态变量初始化吗?

1.static成员的所有者是本身和对象,但是多有对象拥有一样的静态成员。从而在定义对象时不能通过构造函数对其进行初始化。 2.静态成员不能在定义里边初始化,只能在class body外初始化。 3.静态成员仍然遵循public,private,protected访问准则。 4.静态成员 ...

Wed Apr 04 23:28:00 CST 2012 0 15144
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