假设我有对象:bob1,cob2。我想为类B和C建立一个析构函数,但我不确定如何销毁B.BB和C.CC以及如何访问它们。还有,有没有办法让我做到这一点,而不让类成为a类的朋友?
class A
{
protected:
int a, aa;
public:
A();
A(int a, int aa);
~A();
friend class B;
friend class C;
};
class B
{
protected:
int b;
A bb;
public:
B();
A(int b, A bb);
~B();
};
class C: class B
{
private:
int c;
A cc;
public:
C();
C(int c, A cc);
~C();
};
你不知道。它们会自动被摧毁。为此不需要朋友
。
一旦使用继承,析构函数就应该是虚拟的:
class B
{
...
public:
B();
A(int b, A bb);
virtual ~B();
};