C++ 静态变量初始化 “undefined reference”

静态变量 undefined reference 

1. c++头文件, 类中定义static 变量,不要在头文件内类外做初始化(头文件被多次包含,会引起多重定义)也不能在构构函数内初始化。

(1.对于类中的静态成员是单独存储的,而不是对象的组成部分, 初始化语名指出了类型,并使用了作用域运算符,但并没有使用关键字static;

2. 初始化应该放在方法文件中,而不是类声明文件中进行,因类声明位于头文件中,程序可能将头文件包含在其他几个文件中。如果在头文件中进行初始化,将出现多个初始化语句的副本,从而引发错误.

3. 对于不能在类声明中初始化静态成员的一种例外情况是,静态数据成员为整型或枚举型const.

 

2.  static 变量在cpp中初始化,且在{}外实始化;

test.hxx

class CTest{

     public:

         static int a;

};

test.cpp

int CTest::a = 0;

int main(){}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值