Возможно, это уже задавалось ранее в SO, но мне не удалось найти подобный вопрос.
Рассмотрим следующую иерархию классов:
class BritneySpears
{
public:
virtual ~BritneySpears();
};
class Daughter1 : public BritneySpears
{
public:
virtual ~Daughter1(); // Virtual specifier
};
class Daughter2 : public BritneySpears
{
public:
~Daughter2(); // No virtual specifier
};
Есть ли разница между Daughter1
и Daughter2
классы?
Каковы последствия указания / не указания virtual
для деструктора / метода подкласса?
Спасибо.