博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
构造函数和析构函数
阅读量:5235 次
发布时间:2019-06-14

本文共 349 字,大约阅读时间需要 1 分钟。

关于二者执行的顺序,正常来说,是:构造父类-构造子类-析构子类-析构父类   (栈的顺序)

比如 class F{}; class S : public F{}; S* s = new S(); delete s; 就会按照上面的顺序执行。

 

但是,class F{}; class S : public F{}; F* s = new S(); delete s; 也是构造父类然后构造子类,但是只会调用父类的析构函数(前提是析构函数是非虚函数)

因此,如果一个类可能会派生子类,那么就把析构函数定义成虚函数。上面的例子在虚析构函数的情况下执行顺序是:构造父类-构造子类-析构子类-析构父类

转载于:https://www.cnblogs.com/thinknothing/p/3989530.html

你可能感兴趣的文章
name phone email正则表达式
查看>>
721. Accounts Merge
查看>>
「Unity」委托 将方法作为参数传递
查看>>
重置GNOME-TERMINAL
查看>>
redis哨兵集群、docker入门
查看>>
hihoCoder 1233 : Boxes(盒子)
查看>>
oracle中anyData数据类型的使用实例
查看>>
C++对vector里面的元素排序及取任意重叠区间
查看>>
软件测试——性能测试总结
查看>>
12.4站立会议
查看>>
Java Concurrentmodificationexception异常原因和解决方法
查看>>
客户端访问浏览器的流程
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
编程面试的10大算法概念汇总
查看>>
Vue
查看>>
python-三级菜单和购物车程序
查看>>
条件断点 符号断点
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>