Sul*_*lla 9 c c++ compiler-errors initialization
当我尝试在类定义中初始化int成员变量时,我的C++编译器会抱怨.它告诉"只能在类中初始化静态const积分数据成员".能否请您解释这一限制背后的基本原理(如果可能,请举例说明).
bel*_*daz 11
因为在当前标准中不允许这样做.根据Bjarne的说法,您将能够在C++ 0x中执行此操作.如果您真的需要它,请尝试将编译器设置为C++ 0x(-std=c++0x
在GCC中)并查看您的编译器是否支持它.
理由是C++的"低级"性质.如果允许这样,编译器将需要为所有构造函数生成初始化代码,这对开发人员来说并不完全清楚.
毕竟,即使未显式调用基类构造函数,也可能需要在构造派生类时初始化基类成员.
静态const积分变量在创建对象时不需要初始化.