C++的一个小问题!c++的爱好者进来帮帮小弟!

来源:百度知道 编辑:UC知道 时间:2024/05/27 00:46:07
学c++真不容易啊?析构函数和delete,都是销毁一个对象,清除内存空间!为什么delete要配合析构函数使用啊?不能单独使用吗?我是一个初学者!希望,大家用通俗的语言帮我解释一下!谢谢大家了!

对象是用构造函数构造,用析构函数析构,,析构函数仅仅是做一些收尾工作,最常用的就是释放内存,,,“析构函数和delete,都是销毁一个对象”这句话太含糊,,析构函数在对象被销毁的时候调用,例如:在某个函数内定义了某个类的非静态对象,那么这个函数执行完的时候,由于这个对象具有局部作用域,所以被销毁,这个时候它的析构函数即被调用!
delete,,通俗来说,,就是释放堆上的内存,可以再任何地方和new配对使用,没有规定一定要和析构函数一起配合使用!
之所以又时候配合使用,显然是对象申请了内存,析构的时候顺便释放了!

c++是什么东东

个人见解:
在类中,对象的消亡肯定会调用析构函数的(你也应该看到书上写着自动调用吧)
那么配合delete使用的目的是为了什么呢?为了一种情况
student *p=new student;(student是你定义的类)
你说清除空间并没有错,但是以new来得到的空间必须使用delete来清除,所以就有了配合使用这么一种情况了。

你理解不够,析构函数是善后处理,它可有可无,你不写的话系统会自动调用默认的构造函数。而delete是配合new使用的,用new开辟特定大小的内存空间,就必须在结束是delete删除,释放空间。习惯上总是把它放在析构函数中写,也可以写在主函数

你搞错了,delete是释放new申请的空间,而不是销毁对象,析构函数才是销毁一个对象,在对象被销毁之前应该把new申请的空间释放掉,而delete正是这个作用