C++析构函数 什么时候用虚函数
来源:互联网 发布:淘宝优惠券推广图片 编辑:程序博客网 时间:2024/06/05 13:36
如果不需要基类对派生类及对象进行操作,则不能定义虚函数,因为这样会增加内存开销.当类里面有定义虚函数的时候,编译器会给类添加一个虚函数表,里面来存放虚函数指针,这样就会增加类的存储空间.所以,只有当一个类被用来作为基类的时候,才把析构函数写成虚函数.
来源:http://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/13/2589716.html
析构函数的作用是在对象撤销之前把类的对象从内存中撤销。通常系统只会执行基类的析构函数,不执行派生类的析构函数。
只需要把基类的析构函数声明为虚函数,即虚析构函数,这样当撤销基类对象的同时也撤销派生类的对象,这个过程是动态关联完成的。
如果将基类的析构函数声明为虚函数时,由该基类所派生的所有派生类的析构函数都自动成为虚函数,即使派生类的析构函数与基类的析构函数名字不相同。
最好把基类的析构函数声明为虚函数,这将使所有派生类的析构函数自动成为虚函数,如果程序中显式delete运算符删除一个对象,而操作对象用了指向派生类对象的基类指针,系统会调用相应类的析构函数。
(C++ 析构函数一般定义为虚函数)如果基类中析构函数没有定义为虚函数,则delete ani的时候,仅仅调用了父类的析构函数,子类的没有调用,如果在父类和子类的构造函数中都有动态内存分配,那么就会存在内存泄漏的问题。一般析构函数最好都写成虚函数,尤其是父类。
http://www.cnblogs.com/carsonzhu/p/5271961.html
http://www.cnblogs.com/huhuuu/archive/2013/12/01/3453063.html
- C++析构函数 什么时候用虚函数
- [转]什么时候用虚拟析构函数
- 析构函数什么时候调用
- 析构函数什么时候调用
- C++什么时候析构函数需要声明为虚函数
- 什么时候析构函数需要定义为虚函数
- 为什么要用虚函数?什么时候用虚函数?
- 什么时候使用虚函数?
- 什么时候需要C++虚拟析构函数
- 析构函数什么时候会调用?
- [转]什么时候调用构造函数和析构函数
- 什么时候必须显式调用析构函数
- 析构函数、复制构造函数、赋值函数什么时候必须显式定义
- C++什么时候使用纯虚函数
- C++什么时候使用纯虚函数
- 什么时候不应当使用虚函数
- 什么时候用表达式方法声明函数
- 什么时候需要虚析构函数
- 初识Spring Boot
- cocos2D CCNode 5
- 第二册第九单元总结
- USB驱动或设备开发的基本认识
- 人脸检测、提取特征点(dlib下的三个例子)
- C++析构函数 什么时候用虚函数
- Linux wait() 和 waitpid()函数整理
- 时间复杂度 T(n)
- 前端-移动端开发(一)
- 态势感知系统,助力网络更安全
- C#获取CPU序列号,MAC地址,硬盘ID,本机IP地址,计算机名,物理内存,PC类型
- 深入jar包:从jar包中读取资源文件
- 发现两个php的配置文件的不同
- 什么是IP 、子网掩码、 网段?