我应该清理 ivar C++向量...?
如果将向量放入堆栈中,它将在其自动变量作用域结束时自动销毁。
如果我将向量放入类中怎么办?
class A
{
vector<B> bs; // B is POD struct.
};
我应该手动清理它吗?如果是这样,我该怎么办?
If a vector is placed in stack, it will be destructed automatically at the end of its automatic variable scope.
What if I have placed a vector in a class?
class A
{
vector<B> bs; // B is POD struct.
};
Should I clean it up manually? If so, how should I do?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当调用封闭类的析构函数(即
A
的析构函数)时,该向量 bs 将被破坏。That vector
bs
will be destructed when the enclosing class's destructor (i.eA
's destructor) will be called.确保向量中使用的每个 B 类在析构函数中删除自己分配的空间,这样当向量超出范围时,就不会出现内存泄漏
Make sure each B class that you use in the vector, deletes its own allocated space in the destructor, so when the vector goes out of scope, you wont be left with memory leaks