根據C++標準,這是完全可以接受的做到這一點:- 對空>操作對象
class P
{
void Method() {}
};
...
P* p = NULL;
p->Method();
然而,這種輕微的變化:
class P
{
virtual void Method() {}
};
...
P* p = NULL;
p->Method();
產生訪問衝突時編譯Visual Studio 2005.
據我所知,這是由微軟的編譯器實現中的一些怪癖造成的,而不是由於我完全無能爲力造成的,所以問題是:
1)這種行爲是否存在於更新版本的VS中?
2)有沒有,我不知道,防止這種訪問衝突的編譯器設置?
標準中的哪個位置可以使用? – 2012-03-16 14:00:01