为了账号安全,请及时绑定邮箱和手机立即绑定

关于析构函数

程序结尾的 delete stu; stu = NULL;  的作用不是释放内存吗?为什么还要定义析构函数来释放内存呢?

正在回答

2 回答

只是释放掉分配给student在堆内存。不释放的话会占据内存管理的。那个构造函数 是分配在栈里的,系统它自己会分配自动释放,但是*p是程序员自己分配在堆里的内存,需要程序员自己去释放,系统不会帮你释放的

0 回复 有任何疑惑可以回复我~
#1

东方既白233

*stu = new student 是分配在堆的
2016-11-11 回复 有任何疑惑可以回复我~
#2

蒙麵女俠 提问者 回复 东方既白233

这个需要自己释放?
2016-11-11 回复 有任何疑惑可以回复我~

自己把堆里内存*p释放了 那析构函数释放的是什么呢?

0 回复 有任何疑惑可以回复我~
#1

东方既白233

析构函数释放你定义的那个对象的那个类。例如 ~后面接的那个就是
2016-11-11 回复 有任何疑惑可以回复我~
#2

蒙麵女俠 提问者 回复 东方既白233

哦哦 我知道了! 谢谢啊
2016-11-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103381    人
  • 解答问题       732    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

关于析构函数

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号