1、类内写:const static int m_c_s_Test;
类外写:const int NC::m_c_s_Test = 100;
两个编译器没问题,都能编译通过,并能够正常运行。
VC6.0:
VS2012:
2、类内写:const static int m_c_s_Test = 100;
类外写:const int NC::m_c_s_Test;
两个编译器没问题,都能编译通过,并能够正常运行。
VC6.0:
VS2012:
3、类内写:const static int m_c_s_Test;
类外写://const int NC::m_c_s_Test = 100;
两个编译器没问题,都能编译通过,并能够正常运行。
VC6.0:
VS2012:
结论:
关于const static 数据成员,
VC6.0只能类内定义,类外初始化,即:
类内写:const static int m_c_s_Test;
类外写:const int NC::m_c_s_Test = 100;
而对于VS2012来说可以类内定义,类外初始化,(同VC6.0)
也可以类内初始化,类外定义,甚至类内初始化,类外无定义,即:
类内写:const static int m_c_s_Test = 100;
类外写:const int NC::m_c_s_Test;
或者:类内写:const static int m_c_s_Test = 100;
类外写://const int NC::m_c_s_Test;