但是在下面这个例子中Q?
int regi()
{
return 5;
}
class mytestclass
{
public:
const static int i = regi();
};
int main()
{
std::cout<<mytestclass::i<<std::endl;
return 0;
}
输出却不正确Q输Zؓ(f)0Q编译链接都没有问题Q。。?
g代码q没有执行regi函数Q?
在C++标准中将初始化变量分?动态初始化"?静态初始化","动态初始化"为利用函数进行初始化,"静态初始化"为常量表辑ּq行初始?
C++标准对于cM的常量表辑ּ?动态初始化"gq未做说?所以是否支持类中常数静态变量的动态初始化也就取决与编译器的设计了.
但是无论如何vc7.1的编译结果都是不对的,它ƈ没有l出错误,但是l果与逻辑不向W合,q应该是vc7.1的一个bug.(在vs2005中的C++~译器已l修正了q个bug,l出了一个编译Error)
详细讨论误:
http://community.csdn.net/Expert/topic/4432/4432789.xml?temp=.3202783
特别感谢qfeng_zhao ?lxpws ?iGray {几?