【发布时间】:2015-07-03 06:55:42
【问题描述】:
这是我的结构 A
struct A {
int a1;
int a2;
~A() { }
};
B 是另一个包含指向 A 的指针的结构
struct B {
B(int b, A* a)
: b1(b), ptr2A(a)
{}
int b1;
A* ptr2A;
~B() {
delete b1;
// traverse each element pointed to by A, delete them <----
}
};
稍后我使用下面的代码
int bb1;
vector <A*> aa1;
// do some stuff
B *ptrB = new B(bb1, aa1);
我需要删除/释放 ptrB 指向的所有内存。因此,我需要在 struct B 中编写正确的析构函数。如何遍历 A 指向的每个元素并删除它们?
【问题讨论】:
-
你需要一本 C++ 书籍。您正在尝试混合和匹配来自
C的内容并尝试使用delete自动变量。此外,A中没有任何内容可遍历 - 你只需delete ptr2A。