例如,尽可能简化:
class thing{
public:
char* arr;
thing();
}
thing::thing{
arr = new char[1000];
}
如果我创建一个动态分配的 thing
实例,然后使用 delete
释放它,构造函数动态分配的内存是否也会被释放,或者我必须先释放 arr
吗?
最佳答案
不像那个类写的那样。您将需要声明一个执行 delete [] arr;
的析构函数 - 您应该遵循一三条规则(如果添加移动语义,则应遵循五条规则)。
关于c++ - 取消分配类的实例是否也会取消分配由其对象/方法动态分配的任何内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32818106/