详解 C++ virtual 析构函数
来源:互联网 发布:网络应用跨平台部署 编辑:程序博客网 时间:2024/06/07 16:49
第一种情况:基类指针指向派生类对象。
#include <iostream>using namespace std; class Base{ public: ~Base() {cout<<"~B"<<endl;}}; class Derived:public Base{ public: ~Derived() {cout<<"~D"<<endl;}}; int main (){ Base *b = new Derived; //注意这里 delete b;}这里只有基类(Base)会被析构掉,派生类(Derived)没有被析构。
第二种情况:派生类指针指向派生类对象。
#include <iostream>using namespace std; class Base{ public: ~Base() {cout<<"~B"<<endl;}}; class Derived:public Base{ public: ~Derived() {cout<<"~D"<<endl;}}; int main (){ Derived *d = new Derived; //注意这里 delete d;}
这次基类和派生类都能被析构掉。
第三种情况:基类指针指向派生类对象,但析构函数是virtual 的。
class Base{ public: virtual ~Base(){cout<<"~B"<<endl;}; } class Derived:public Base{ public: virtual ~Derived(){cout<<"~D"<<endl;}; } void main (){ Base *b=new Derived(); delete b; }这时,基类和派生类对象都能被析构掉。
- [c/c++]析构函数virtual相关
- 详解 C++ virtual 析构函数
- 详解 C++ virtual 析构函数
- 详解 C++ virtual 析构函数
- C#virtual详解,virtual和构造函数的问题
- virtual 析构函数
- Virtual 析构函数
- virtual 析构函数
- virtual+析构函数
- virtual析构函数
- virtual析构函数
- virtual析构函数
- C++Virtual详解
- 【C++】析构函数和virtual函数引发的隐晦问题 ——《Effective C++》
- C++ virtual 析构函数
- C++ virtual 析构函数
- C++ virtual 析构函数
- C++ virtual 析构函数
- heap+prim
- liunx下crontab执行命令乱码的解决方案
- ubuntu下alias使用详解(有许多需要注意的细节)
- 查询每门课分数最高的学生
- (转载问问)一道EXCEL逻辑判断函数的实例
- 详解 C++ virtual 析构函数
- 函数式编程很难,这正是你要学习它的原因
- JQuery 提供的函数 JQuery选择器 过滤器
- 黑马程序员--第三阶段--Java基础加强--第26天
- Automation服务器不能创建对象" 的多种解决办法
- asp.net调用excel报错
- C# GoogleEarth Win7 64位 Interop.EARTHLib 没有注册类
- 关于C编程的一点感受
- 给程序员们的工资报价提醒