假设我有:
class A {
public:
A(HWND hwnd, HWND hwnd2);
~A();
int i;
HWND hwndFrame;
HWND hwndCanvas;
bool bool;
};
class B {
public:
B(HWND hwnd);
~B();
HWND hwndFrame;
Vec<A *> vecA; // class Vec is implemented by someone else.
};
假设我创建了:
A * elementA1 = new A(...);
A * elementA2 = new A(...);
B * element B = new B(...);
B->vecA.Append(A1);
B->vecA.Append(A2);
在某些时候,我想删除所有上述对象(因此它们不再存在于内存中)。
我很困惑如何去做。
我的问题是:
如果我放入
delete hwndFrame
析构函数~A();
,那么当我做的时候delete A
,做hwndFrame
真的被删除了吗?在析构函数
~B()
中,为了delete
(从内存中)向量B->vecA
及其元素指向的内容,即A1
和A2
指向的内容,我必须做些什么。