假设我们有一堂课
class A
{
int x;
public:
void sayHi()
{
cout<<"Hi";
}
};
int main()
{
A *a=NULL;
a->sayHi();
}
上面的代码将在 Turbo C(我测试过的地方)上编译并Hi
作为输出打印。
我期待崩溃,因为a
is NULL
。更重要的是,如果我将sayHi()
功能设为虚拟,它会说
Abnormal temination(Segmentation fault in gcc)
我知道其中很多是依赖于实现的,但是如果有人可以对任何实现有所了解或者只是给出一个概述,那就太好了。