在类中使用静态类成员是常见操作。考虑以下定义:使用正在定义的类的静态类成员
foo.h中
class foo
{
public:
virtual ~foo();
protected:
foo();
static foo ms_oFooStaticObject;
}
Foo.cpp中
foo foo::ms_oFooStaticObject;
foo::foo(){}
foo::~foo(){}
void main()
{
int i;
}
在编译上面的代码没有编译器错误,你可以简单的步骤模式下运行,并观察静态C-tor正在执行。
这怎么可能?这是一个编译器错误?
我使用Visual Studio 2005(专业版)与SP1(SP.050727-7600)
当面对一个“奇怪”的行为时,假设编译器有一个bug是你应该做的最后一件事**。您对您提供的代码有何期望? – ereOn 2011-06-14 09:23:13
附注:不要使用'void main'。 – 2011-06-14 09:45:24