我发现几乎每个虚拟析构函数的代码片段都将其作为公共成员函数,如下所示:
class Base
{
public:
virtual ~Base()
{
cout << "~Base()" << endl;
}
};
class Derived : public Base
{
public:
~Derived()
{
cout << "~Derived()" << endl;
}
};
虚拟析构函数是否必须是公共的,或者是否存在非公共虚拟析构函数有意义的情况?