c++ 虚析构函数
来源:互联网 发布:ubuntu 开机自启动脚本 编辑:程序博客网 时间:2024/06/18 10:15
class Base1 {public:Base1() { cout << "Base1::Base1 1"<<endl; };Base1(int i, int j) :i(i), j(j) {cout << "Base1::Base1 2"<<endl ;}; ~Base1() {cout << "Base1::~Base1"<<endl;}void basemem() { cout << i <<","<< j<<endl; };protected:int i;private:int j;};struct public_derived : public Base1{public:public_derived() { cout << "public_derived::public_derived 1" << endl; };public_derived(int i, int j, int k) : Base1(i, j), k(k) { cout << "public_derived::public_derived 2" << endl; };int use_base() { return i; }~public_derived() { cout << "public_derived::~public_derived" << endl; };protected:int k;};
public_derived d2(5,7,8);
直接定义对象,在超出对象的范围时,会先自动调用派生类的析构函数再调用基类的析构函数;
若基类析构函数不是虚函数,则当基类指针或引用指向动态生成的派生类对象,并通过该指针delete该对象时,派生类的析构函数并不会执行,为了派生类析构函数执行,基类的析构函数需要声明为虚函数;
Base1 *bp;
bp = new public_derived(5, 7, 8);
delete bp;
0 0
- C++-----虚析构函数
- C++----虚析构函数
- C++【浅谈虚析构函数】
- C++_虚析构函数
- 【c++】虚析构函数
- (C++)虚析构函数
- C++---------之--------【虚析构函数】
- 【C/C++】C++虚析构函数的作用
- [C/C++]C函数
- 【C++】正确使用虚析构函数
- c++------------之---【虚析构函数应用】
- <C++>析构函数、虚析构函数和构造函数
- c 函数
- C函数
- C 函数
- C函数
- 【C++】函数
- C 函数
- 百度地图Geocoding API 用法
- 更新ruby后pod使用报错
- volley获取json数据乱码,解决方法
- SQLITE中文模糊查询的问题及解决办法
- jquery-confirm 弹框插件
- c++ 虚析构函数
- 常用的一些排序算法
- SCU2016-01 L 集合容斥原理
- ts码流解析工作总结
- HighChart前后台封装,构造个性化图表插件highChartTools,快捷创建各种图表
- 解决ListView的item含有RadioGroup,滑动错乱问题,从国外大神博借鉴过来的
- UNITY 5.3.3 发行说明 中文版
- CSS 元素垂直居中
- js闭包的简单理解