Это, вероятно, было задано ранее на 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
на деструктор/метод подкласса?
Спасибо.