У меня есть ситуация, похожая на следующий код:
#include <iostream>
class A
{
public:
A() { std::cout << "A created!" << std::endl; }
~A() { std::cout << "A destroyed!" << std::endl; }
virtual const char* Name() { return "A"; }
};
class B : public A
{
public:
B() { std::cout << "B created!" << std::endl; }
~B() { std::cout << "B destroyed!" << std::endl; }
const char* Name() { return "B"; }
};
int main()
{
A* a = new B();
std::cout << a->Name() << "\n";
delete a;
return 0;
}
Я хочу, чтобы B уничтожался, когда уничтожается и A.Возможно ли это в его деструкторе или мне нужно реализовать виртуальный метод Destroy () или что-то в этом роде?