Я обнаружил, что почти каждый фрагмент кода виртуальных деструкторов имеет его как публичную функцию-член, например:
class Base
{
public:
virtual ~Base()
{
cout << "~Base()" << endl;
}
};
class Derived : public Base
{
public:
~Derived()
{
cout << "~Derived()" << endl;
}
};
Должны ли виртуальные деструкторы быть общедоступными или существуют ситуации, когда имеет смысл непартийный виртуальный деструктор?