gpt4 book ai didi

c++ - 什么是 'delete' 'new' 数据/对象的安全方法?

转载 作者:行者123 更新时间:2023-11-30 04:19:18 26 4
gpt4 key购买 nike

例如,如果我创建一个类对象的"new"实例,然后“删除”该实例,是否会清除(如释放)该实例使用的所有内存?如果该实例创建了其他对象的"new"实例怎么办?他们也会受到影响吗?

“删除”究竟是如何工作的?是否有任何关于如何删除的安全规则/提示?如果我真的想保留某些内容并删除该实例中的所有其他内容怎么办?

编辑:关于“智能指针”,如果我需要在特定时刻删除它,我还能这样做吗?如果是这样,那和"new"有什么区别? (除非智能指针在应用程序意外关闭时删除?)

最佳答案

规则 1. 除非有充分的理由,否则不要使用 new

规则 2. 如果您确实使用了 new,那么您必须在某处调用相应的 delete

关于delete 的作用:它调用对象的析构函数(如果有的话),然后释放内存。如果“清除”是指“将使用过的内存设置为零或其他值”,那么通常不会。但是,如果您的意思是“使其可用于其他用途”,那么是的,这正是 delete 所做的。

关于c++ - 什么是 'delete' 'new' 数据/对象的安全方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15949982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com