根据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