【发布时间】:2010-06-24 20:35:47
【问题描述】:
我有 2 个类,比如 A 和 B。B 类有自己的析构函数。在 A 类中,我有一个指向 B 类对象的指针向量。该向量如下:
vector<B*> vect;
在 A 类的析构函数中,我如何检索内存?如果我循环遍历向量,是否检索每个对象并在每个检索到的对象上使用 delete?我在析构函数中尝试过,但它会出现段错误。
非常欢迎您提供解决此问题的任何帮助。很抱歉,我无法发布代码。
【问题讨论】:
-
在我们回答这个问题之前。我们必须知道你是如何将东西放入向量中的(对象是用 new 创建的吗(这会引发另一个问题,谁拥有你刚刚创建的对象?))。另一个问题是为什么要将指针放在向量中。该向量旨在获取“对象”的所有权,因此除非您的 B 是多态的,否则将 B 对象(而不是指针)放入向量中可能会更好。
标签: c++ vector stl delete-operator user-defined