gpt4 book ai didi

c++ - 析构和删除

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:52 24 4
gpt4 key购买 nike

我有一个 C++ 类,MyClass。它包含一个构造函数、析构函数和一个 int 指针 private: int *MyPtr;

在某处,我动态分配了一个 MyClass 对象:

MyClass *my = new MyClass(); //...

然后我调用delete my;

MyClass 是否应该有一个使用类似delete MyPtr 的析构函数?还是当我调用 delete my 时 MyPtr 被销毁了?

最佳答案

如果您在 MyClass 构造函数中分配了 MyPtr,那么您有责任删除它。否则,如果您删除未分配的内存,则会导致未定义的行为。

如果您需要动态分配和删除内存,一个惯用的方法是在类内部使用智能指针,智能指针会为您处理内存释放。

可能值得一读:rule of three

关于c++ - 析构和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14332630/

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