C++ PRIMER 12.6.2.1 中说:“const static 数据成员在类的定义体中初始化时,该数据成员仍必须在类的定义体之外进行定义。在类内部提供初始化式时,成员的定义不比再指定初始值"
在VS2005 中测试了一下:
class KAutoNode
{
const static int CardOut ;
}
const int KAutoNode::CardOut = 1000;
这是可以的。符合一般情况的static 形式变量声明、定义。
当然
class KAutoNode
{
const static int CardOut = 10000 ;
}
这样也可以。
但是
class KAutoNode
{
const static int CardOut = 10000 ;
}
const int KAutoNode::CardOut ;
就重定义了。
这是为什么呢??