VC6.0中,整型const static成员不能在类的定义体中初始化.

时间:2021-06-20 20:04:16

以上代码在VC6下编译出错,信息如下:

C:/Program Files/Microsoft Visual Studio/MyProjects/2/1.cpp(390) : error C2252: 'count' : pure specifier can only be specified for functions
C:/Program Files/Microsoft Visual Studio/MyProjects/2/1.cpp(402) : error C2065: 'count' : undeclared identifier

 

然而,《C++ Primer》第四版401页中说:
         一般而言,类的static成员,像普通数据成员一样,不能在类的定义体中初始化。相反,static成员通常在定义时才初始化。
        这个规则的一个例外是,只要初始化式是一个常量表达式,整型const static 成员就可以在类的定义体中进行初始化。
但是,
在VC2003里编译该代码,pass.

应该算是VC6的又一个经典BUG了吧!

毕竟,目前的C++是在1999年制定,2003年小修改了一下,而vc++6.0是在98年发布的 ,可以原谅吧!

Effective C++似乎也提到过这个问题!