Dobrý den,
pomozte mi, prosím, objasnit jednu moji nejasnost. Mám kód:
class A
{
public:
A();
virtual void x();
virtual ~A();
};
class B : public A
{
public:
B();
virtual void x() {}
};
Třída A je abstraktní, třída B je polymorfní, ale nenapsal jsem do ní záměrně destruktor (přestože díky virtuální metodě by tam měl virtuální destruktor být).
Co nevím:
1. jaký destruktor se vygeneruje, když ho explicitně nenapíšu - bude už ve všech potomcích virtuální - je to pravidlo?
2. když budu mít ve třídě A virtuální destruktor, můžu ve třídě B explicitně vytvořit standartní destruktor?
Děkuji za odpověď