【发布时间】:2014-05-20 18:23:52
【问题描述】:
我想拥有一个自身具有 static 成员的类,但我不知道该怎么做。这可能吗?
我得到错误:
只有静态常量整数数据成员可以在类中初始化
代码:
namespace misc
{
class CData
{
public:
CData( ) { };
CData( int d );
CData& operator = ( const CData& d );
static const CData FIRST = CData( 512 ); //how?
private:
int data;
};
}
由于我经常使用FIRST,我想使用misc::CData::FIRST 静态访问它,而无需在范围内的某处声明它。这有可能吗?
【问题讨论】:
-
您正在使用旧的编译器,或者它处于旧模式。尝试将
--std=c++11(或--std=gnu++11)添加到您的编译器选项中。 -
为什么你的标题是“静态常量积分成员”?这是相当误导。
-
您希望
FIRST成为静态数据成员,因为您经常访问它?为什么限制在其他地方声明(我假设你的意思是定义)? -
@juanchopanza:因为这是他的 C++11 之前的编译器给出的错误信息。
标签: c++