在類中使用靜態類成員是常見操作。考慮以下定義:使用正在定義的類的靜態類成員
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