类需要一个虚析构函数吗?
2012-05-17 09:22
169 查看
绝不会用作基类的类是不需要虚析构函数的:任何虚函数只在继承的情况下才有用。
假设,你设计了一个A类,并且B是A的继承,你在使用的时候,你可能会将实际指向B类的指针指向基类A的指针,并且调用了delete函数。
代码如下:
在这样的时候,我们是需要一个虚析构函数。
假设,你设计了一个A类,并且B是A的继承,你在使用的时候,你可能会将实际指向B类的指针指向基类A的指针,并且调用了delete函数。
代码如下:
#include<iostream> using namespace std; struct A{ string a; virtual ~A() //~A() { cout<<"~A()"<<endl; } }; struct B:A{ string b; ~B() { cout<<"~B()"<<endl; } }; int main() { A *a = new B; delete a; return 0; }
在这样的时候,我们是需要一个虚析构函数。
相关文章推荐
- C++ 虚析构函数-(一个带有虚函数功能的类,则它需要一个虚析构函数)
- 基类为何需要有一个虚析构函数
- 一个JavaScript组件都需要哪些基础api
- 一个类能够克隆需要满足的条件
- ORA-02041: 客户数据库未开始一个事务处理 .NET 连接低版本ORACLE时需要注意的问题
- 幸福有时候只需要一个台阶
- vector::erase方法,返回值是更新后的容器的被删除元素的后一个元素的迭代器,如果需要指向删除元素的前面一个元素的迭代器就要-1
- 中国公司需要一个更加国际化的董事会
- 新生成了一个PCB,竟然需要700多兆内存才能打开,而且存储非常缓慢
- 题目:定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法, * 例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯
- delphi中三层结构怎样设计?一个管理软件的应用服务器端需要建多少个Remote Data Module?
- WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptRe
- 由于项目的原因,需要动态创建一个二维数组来保存灰度值
- java--随机输出需要某两个整数之间的一个随机数
- 使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
- android 自动划屏效果 在这里,我们需要用到google提到的一个包——android-support-v4.jar,这个包是为了方便实现android view之间的切换,关
- 掌握一个ERP系统需要多长时间?
- PHP的一个需要注意的POST小问题
- 配置文件现在需要一个短语密码
- 通过自动加载完成 需要图片上传类的时候,加载图片上传类;需要验证码类的时候,加载验证码类;需要smarty的时候,加载smarty (注意:功能类 和 smarty,数据库连接类不再同一个目录)