【发布时间】:2012-05-31 13:16:38
【问题描述】:
我的 Test 类有一个子类型的 const static 成员。我通常将这个conststatic成员定义如下。
class Test
{
public:
class Dummy {};
private:
static Dummy const dummy;
};
Test::Dummy const Test::dummy; // ERROR HERE
int main()
{
return 0;
}
当用 gcc-4.6 编译这个源码时,它没有报错并且编译正确。
当使用 gcc-4.4 编译相同的源代码时,会出现以下错误:
error: uninitialized const ‘Test::dummy’
在标记线上。
- 还有其他方法来定义这个静态 const 成员变量吗?
- 这是 gcc-4.4 的限制吗?
- 有解决方法吗?
【问题讨论】:
-
Test::Dummy const Test::dummy = Test::Dummy();
标签: c++ g++ constants static-members