您的位置:首页 > 其它

MOOC清华《面向对象程序设计》第4章:虚析构函数实验

2017-08-25 20:34 274 查看
#include <iostream>
using namespace std;

class B{
public:
virtual void show(){
cout << "B.show()\n";
}
virtual ~B(){
cout << "~B()\n";
}
};

class D:public B{
public:
void show(){
cout << "D.show()\n";
}
~D(){
cout << "~D()\n";
}
};

void test(B* ptr){
ptr->show();
}

int main(){
B* ptr = new D;
test(ptr);
delete ptr;

return 0;
}




如果把B类中的析构函数前的virtual去掉,则结果为



这样派生类D中的析构函数就没有被调用,容易埋下bug隐患。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐