关于C++里面的析构函数和回收空间??

就是C++里面的析构函数和回收空间是一个因果关系(是因为有函数被析构从而内存就自然而然被回收),还是一个先后顺序(先要析构函数对内存空间进行格式化,然后再调用delete... 就是C++里面的析构函数和回收空间是一个因果关系(是因为有函数被析构从而内存就自然而然被回收),还是一个先后顺序(先要析构函数对内存空间进行格式化,然后再调用delete或者free来回收已经格式化的内存)???? 展开
 我来答
打酱优滴猪
2013-10-31 · 超过11用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:21.4万
展开全部

我感觉你是对delete和析构有点迷糊吧,我的看法是这样:

  1. 析构函数和delete都是用来释放资源,回收空间的;

  2. 析构函数中可以调用delete,比如你在构造函数中用new开辟了一段空间,就可以在析构函数中调用delete来释放掉。

  3. delete也会调用析构函数,如果你new了一个对象指针,那么在delete的时候,delete会先调用该对象的析构函数,释放对象本身的资源,然后才是delete掉这个对象指针。

不知道这样说你明白不?

bhtzu
2013-10-31 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4269万
展开全部
逻辑比较混乱。
析构函数的作用,就是在销毁对象的时候,系统自动回收工作之前,先调用析构函数,这里应该是处理系统无法处理或者希望更优化处理的工作。
C++里面,没有“内存格式化”的工作,各种释放和回收,只是将地址声明为“野”地址,可以使用,不格式化。
当delete一个对象,会先调用对象的析构函数,如果为空则跳过,否则执行用户析构代码,最后,有系统进行自动回收和释放。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
留洽端木诗珊
2019-07-19 · TA获得超过1161个赞
知道小有建树答主
回答量:1969
采纳率:94%
帮助的人:11.2万
展开全部
一般在类中如果定义的构造函数不止一个,因为参数不同,这样可以对生成的类进行不同的参数设置以满足不同的需求。如果不定义或者直接定义对象,系统就会调用默认的(就是没有自定义参数的)构造函数。要自定义参数时就要和普通的函数一样,给对应的形式参数赋上对应的值。析构函数一般只要系统默认的就行了,如果有特殊的要求(如链表)就在函数体内定义处理过程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6a6aa8c
2013-10-31 · TA获得超过1483个赞
知道小有建树答主
回答量:707
采纳率:100%
帮助的人:741万
展开全部
是先调用delete,然后才会调用该对象的析构函数

free不会调用析构函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式