在C++构造函数中,通过new
分配内存的正确方法是哪种。在参数列表中第一种方式:在C++构造函数中分配内存的正确方法是什么?
class Boda {
int *memory;
public:
Boda(int length) : memory(new int [length]) {}
~Boda() { delete [] memory; }
};
或在构造函数体:
class Boda {
int *memory;
public:
Boda(int length) {
memory = new int [length];
}
~Boda() { delete [] memory; }
};
谢谢,博大Cydo。
我知道这只是一个示例代码,但是正如所写的那样,类存在严重的内存管理问题(默认拷贝文件将允许多次释放内存)。使用RAII,使用智能指针或容器。有了适当的RAII,你可能会发现你根本不需要使用自己的删除方法 – 2010-08-12 09:43:06
@jk:借调,我更喜欢'std :: vector'。 –
fredoverflow
2010-08-12 09:44:33