我有一个指向字符串的指针
string* relatori;
以及在类构造函数中
Conference() : numMaxRel(10)
{
relatori = new string[numMaxRel];
}
这是一个在第一个元素上带有指针的标准数组?那么在销毁者内部,我必须执行以下操作吗?
Conference::~Conference()
{
delete rel;
}
答案 0 :(得分:0)
删除自您使用[]分配以来指向的整个数组
delete []rel;
答案 1 :(得分:0)
delete rel
无法释放数组的内存。为此,您必须使用delete[] rel
。但是,您应该意识到,可以使用标准库中的容器来为您执行内存管理,例如std::vector<string>
。这几乎应该始终是首选方式。这就是您的类的样子(注意:您不需要析构函数):
class Conference
{
public:
Conference() : numMaxRel(10)
{
rel.reserve(numMaxRel);
}
private:
size_t numMaxRel;
std::vector<std::string> rel;
};
还请注意,您现在拥有了一个自定义的复制构造函数和移动构造函数,复制和移动分配,它们可以按需完成它们所要做的事情。