这是一个编译错误还是运行时错误?以下代码可以编译!
但是如果我像这样声明Base类,它就无法使用虚函数进行编译:
无论函数是否为虚函数,下面的代码都可以一直编译。
class Base{
void g();
void h();
};
int main()
{
Base* p = new Base();
free(p);
return 0;
}
但是如果我像这样声明Base类,它就无法使用虚函数进行编译:
class Base{
virtual void g();
void h();
};
无论函数是否为虚函数,下面的代码都可以一直编译。
class Base{
void g();
void h();
};
int main()
{
Base* p = (Base*)malloc(sizeof(Base));
delete p;
return 0;
}