在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