关于C++里面的析构函数和回收空间??
就是C++里面的析构函数和回收空间是一个因果关系(是因为有函数被析构从而内存就自然而然被回收),还是一个先后顺序(先要析构函数对内存空间进行格式化,然后再调用delete...
就是C++里面的析构函数和回收空间是一个因果关系(是因为有函数被析构从而内存就自然而然被回收),还是一个先后顺序(先要析构函数对内存空间进行格式化,然后再调用delete或者free来回收已经格式化的内存)????
展开
展开全部
逻辑比较混乱。
析构函数的作用,就是在销毁对象的时候,系统自动回收工作之前,先调用析构函数,这里应该是处理系统无法处理或者希望更优化处理的工作。
C++里面,没有“内存格式化”的工作,各种释放和回收,只是将地址声明为“野”地址,可以使用,不格式化。
当delete一个对象,会先调用对象的析构函数,如果为空则跳过,否则执行用户析构代码,最后,有系统进行自动回收和释放。
析构函数的作用,就是在销毁对象的时候,系统自动回收工作之前,先调用析构函数,这里应该是处理系统无法处理或者希望更优化处理的工作。
C++里面,没有“内存格式化”的工作,各种释放和回收,只是将地址声明为“野”地址,可以使用,不格式化。
当delete一个对象,会先调用对象的析构函数,如果为空则跳过,否则执行用户析构代码,最后,有系统进行自动回收和释放。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般在类中如果定义的构造函数不止一个,因为参数不同,这样可以对生成的类进行不同的参数设置以满足不同的需求。如果不定义或者直接定义对象,系统就会调用默认的(就是没有自定义参数的)构造函数。要自定义参数时就要和普通的函数一样,给对应的形式参数赋上对应的值。析构函数一般只要系统默认的就行了,如果有特殊的要求(如链表)就在函数体内定义处理过程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是先调用delete,然后才会调用该对象的析构函数
free不会调用析构函数
free不会调用析构函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询