c++中,析构函数和delete各有什么作用啊

 我来答
你歇比吧
推荐于2016-06-21
知道答主
回答量:17
采纳率:0%
帮助的人:16.7万
展开全部
我们在初始化一个类的时候,这个类的"构造函数" 首先被执行了,也就是说 "构造函数"是开始时执行的,而"析构函数"函数正和它相反,"析构函数"是结束时执行的.
当你用new实例化出来一个对象的时候,可以用delete 来销毁这个类的对象,程序就会自动调用"析构函数".也就是说delete是和new配合使用的,"new实例化,delete 销毁.

没有实用new实例化出来的对象 程序会自动调用 "析构函数".

给你个例子吧.

class obj{
public:
obj(){
cout<<"出征啦~~";
}
~obj(){
cout<<"收兵啦";
}
};
void main(){
obj sta; //obj *sta=new obj();
// delete sta;
}
开冷桖ro
2019-02-16 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:602万
展开全部
我燥!有机会学不好好学,就md来这里请教?
a肯定是对的,delete对无效地址不影响地处理了。
本来动态必须手动释放的,可构造函数没有new,那么析构不用处理,处理了也不会错。
其实b好象也对。自己做的,构造没new,析构没有delete,有错么?
c++的析构期待编译器?
还不对。。。如果引用了外部new出来的,必须指定为null!
否则。。。一样的要么越界,要么内存不能释放!
反正哥只选a地
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1ac40112f
2009-11-29 · TA获得超过153个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:214万
展开全部
析构函数释放声明的类对象。
delete释放用new动态内存分配的对象,指针等。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式