虚析构函数和析构函数中的虚机制
来源:互联网 发布:wifi迅雷网络异常 编辑:程序博客网 时间:2024/05/29 14:46
虚析构函数:
虚析构函数是为了解决基类指针指向派生类对象,并用基类指针删除派生类对象时能够完全释放内存。
class A1{
public:
~A1(){cout<<"A1"<<endl;}
};
class A2{
public:
virtual ~A2(){cout<<"A2"<<endl;}
} ;
class B1:public A1{
public:
~B1(){cout<<"B1"<<endl;}
};
class B2:public A2{
public:
~B2(){cout<<"B2"<<endl;}
};
int main(){
A1* a1=new B1;
A2* a2=new B2;
delete a1; //调用基类析构函数,显示:A1(派生类并没有被删除)
delete a2; //先调用派生类析构函数,再调用基类虚析构函数。显示:B2 A2
return 0;
}
一般来说,如果类中不包含虚函数,就表示这个类不作为基类使用。
如果声明纯虚的析构函数,则必须为纯虚析构函数提供一个函数体。纯虚析构函数的作用是可以使基类成为一个抽象类,不能创建基类对象。
析构函数的虚机制:
对于在析构函数中调用虚函数,则虚函数机制将被忽略,即只调用本地版本。如果虚机制存在。则析构函数从派生类到基类按层次调用,可能会出现被调用的函数操作在已经被删除的对象上。(例如基类析构函数中的虚函数调用派生类版本,此时派生类已经被删除)
- 虚析构函数和析构函数中的虚机制
- 构造函数和析构函数中的虚函数调用
- 构造函数和析构函数中的虚函数调用
- 构造函数和析构函数中的虚函数
- 构造函数和析构函数中的虚函数
- 虚函数在构造函数和析构函数中的应用
- 虚函数中的析构函数
- C++中的虚函数的底层机制
- C++中的多态机制----虚函数
- 构造函数 析构函数 中的虚函数
- C++中的构造函数、虚函数、析构函数
- C++中构造函数和析构函数中的异常
- C++中的~的意思,析构函数和构造函数
- C++中的构造函数和析构函数
- c++中的构造函数和析构函数
- python中的构造函数和析构函数
- c++构造函数和析构函数中的异常
- 深入解析C++中的构造函数和析构函数
- ActiveMQ的消息重发与死信管理(DLQ)
- 相关个人博客地址
- 使用HTML5开发实现拍照上传应用的方法
- repeater添加序号列的方法
- CCNP笔记 第三章 EIGRP拓扑、路由和汇聚
- 虚析构函数和析构函数中的虚机制
- Jump Game II
- CentOS 6.4 配置固定IP地址
- OgreMax的使用
- PyQt4中的中文显示问题
- SVN整合LDAP配置用户与用户组
- 图形学思考 - 空间坐标转换的理解思考过程
- Oracle字符集的查看和Oracle字符集的设置修改
- 我会好好的