class Temp
{
private:
~Temp() {}
friend class Final;
};
class Final : virtual public Temp
{
public:
void fun()
{
cout<<"In base";
}
};
class Derived : public Final
{
};
void main()
{
Derived obj;
obj.fun();
}
上面的代码试图实现不可继承的类(final)。但是使用上面的代码仍然可以创建派生对象,为什么?
仅当 ctor 设为私有时才能实现所需的功能,我的问题是为什么在 dtor 私有的情况下无法实现?