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

为什么静态成员不能在类内初始化 在C 中,类的静态成员 static member 必须在类内声明,在类外初始化,像下面这样。 或者只进行定义不赋初始值,但是默认值是否是 ,可能会与具体的编译器有关吧 为什么 因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的。 如果不增加int A::count 变量定义,在编译的时候将会报出: A::coun ...

2020-06-30 18:16 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
关于static成员变量初始化的实验

根据C++ Primer中所叙述,static成员必须在进行初始化,而不能在构造函数内进行初始化,于是进行如下实验: 1 令aa行enable,令bb行disable,链接提示: 1>test.obj : error LNK2001: 无法解析的外部符号 ...

Thu Nov 22 05:34:00 CST 2012 1 3147
C++中静态成员变量要在外部再定义或初始化的原因

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

Tue Sep 25 00:04:00 CST 2018 0 3338
C++中静态成员变量要在外部再定义或初始化的原因

我们知道C++的静态成员变量是需要初始化的,但为什么要初始化呢。其实这句话“静态成员变量是需要初始化的”是有一定问题的,应该说“静态成员变量需要定义”才是准确的,而不是初始化。两者的区别在于:初始化是赋一个初始值,而定义是分配内存。静态成员变量中仅仅是声明,没有定义,所以要在的外面定义 ...

Sat May 09 04:33:00 CST 2020 0 1797
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM