class C
{ ...
void member_func() //non-virtual !
{ if (this) { do something with the object ... }
else { take some default action }
}
...
};
显然,成员函数不能是虚函数,因为当对象不存在时,查找表也不存在,虚调用将失败。但对于非虚成员函数,这段代码是否合法的C++呢?在我尝试过的编译器上似乎可以正常工作,但我担心可能存在的不可移植性。在标准中,我找不到明确允许或明确禁止这种构造的条款。