【发布时间】:2011-03-28 20:03:04
【问题描述】:
这是在 C++ 构造函数中通过new 分配内存的正确方法。参数列表中的第一种方式:
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; }
};
谢谢,博达·赛多。
【问题讨论】:
-
我知道这只是示例代码,但正如所写的那样,该类存在严重的内存管理问题(默认复制 ctor 将允许多次释放内存)。使用 RAII,使用智能指针或容器。使用适当的 RAII,您可能会发现根本不需要删除自己
-
@jk:借调,我更喜欢
std::vector<int>。
标签: c++ memory constructor new-operator