注册 登录
编程论坛 C++教室

请教析构函数

evilsharp 发布于 2010-07-13 13:53, 539 次点击
c++ primer 上说
析构函数对撤销内置类型或指针类型的成员没有影响。
这是啥意思?难道说对象delete了,其内置类型的成员还存在?这不是内存泄露吗?
5 回复
#2
rainbow12010-07-13 22:51
没有看这本书,也没有看上下文,不敢说。
#3
最近不在2010-07-14 14:54
对象在其生命期结束时,会调用析构函数,而析构函数主要是进行一些扫尾工作(内存的释放)。对于在栈上的成员,它们随着对象的消亡,而出栈。因此不需要析构函数处理什么。
另外书上根本不是这么说,说上说的是内置类型和复合类型。指针还得根据其是在栈中还是堆中而定

#4
东海一鱼2010-07-16 18:43
嘿嘿,没有底子最好别去读什莫名著。它会让你偏执。

想当初,一本'C++编程思想'让无数C++初学者‘变成死相’。
#5
flyingcat2010-07-18 01:16
好像是在类中,你用new申请的堆要在析构的时候手动用delete释放,不然系统默认的析构也不会回收这块内存,造成内存泄漏
#6
youqingd2010-07-18 23:15
以下是引用东海一鱼在2010-7-16 18:43:06的发言:

嘿嘿,没有底子最好别去读什莫名著。它会让你偏执。

想当初,一本'C++编程思想'让无数C++初学者‘变成死相’。


确实,看的头晕,还是来点最基础的比较好
1