VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 484|回复: 3

[讨论] C++中调用析构函数为什么是逆序的?

[复制链接]
29_avatar_middle
最佳答案
0 
在线会员 发表于 2019-7-18 19:08:44 | 显示全部楼层 |阅读模式
该问题来源于:《实用C++零基础入门》第35课 类的构造函数与析构函数的课后练习
https://www.cctry.com/thread-289942-1-1.html

描述:
在一个函数中创建三个类的变量,当该函数结束时会自动调用对应类的析构函数, 为什么是逆序调用的?  




上一篇:visual c++ 6.0输入不了中文
下一篇:关于素数以及continue用法求解
94_avatar_middle
最佳答案
0 
在线会员 发表于 2019-7-19 09:40:41 | 显示全部楼层
局部变量存在栈中,函数退出是清理栈空间,先进后出~

点评

正解。  发表于 2019-7-19 09:47

评分

参与人数 1威望 +2 驿站币 +2 热心值 +2 收起 理由
51_avatar_small Syc + 2 + 2 + 2 赞一个!

查看全部评分

29_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-7-20 10:12:01 | 显示全部楼层
谢谢。楼上老哥好像说出了本质。下面这个是我在别处看到的解释:
在使用构造函数和析构函数时,需要特别注意对它们的调用时间和调用顺序。在一般情况下,调用析构函数的次序正好与调用构造函数的次序相反:最先被调用的构造函数,其对应的(同一对象中的)析构函数最后被调用,而最后被调用的构造函数,其对应的析构函数最先被调用。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-27 00:33

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表