假设我有以下类:
class foo{
int array_allocation(int length){
array= new int[length];
return 0;
}
private:
int *array;
};
我应该在这里实现~foo(){ delete []array};
或其隐含的实现?
答案 0 :(得分:4)
两者都不应该使用std::vector<int>
。我甚至不是作为你班上的成员说话,而是而不是你班级的。
编辑:不,内存不会自动释放。你需要提供一个有意义的析构函数,复制构造函数&amp;赋值运算符。
答案 1 :(得分:1)
指针不会自动删除。此外,当复制该类时,指针被复制而不是内存。您应该遵守RAII设计模式和the rule of three。