ale*_*555 2 c++ memory-management
在我所在的类中,重构析构函数不会破坏其数组.
class MyClass{
public:
double a;
double rect[4];
MyClass();
~MyClass();
};
MyClass::MyClass() : a(123.0)
{
memset(rect, 0, 4 * sizeof(double));
}
MyClass::~MyClass() {}
Run Code Online (Sandbox Code Playgroud)
我该如何正确销毁它?是否delete
足够简单或者我还需要设置以下内容?
delete[] rect;
*rect= NULL;
Run Code Online (Sandbox Code Playgroud)
Dav*_*eas 15
作为一般经验法则,您需要删除新增的内容.该rect
数组与封闭对象具有相同的存储空间,因此删除/离开分配整个对象的范围的过程将会非常谨慎.