相关疑难解决方法(0)

c ++中的最终类

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();
}
Run Code Online (Sandbox Code Playgroud)

上面的代码试图实现不可继承的类(final).但是使用上面的代码仍然可以创建派生的对象,为什么呢?

只有当ctor私有化时才能实现所需的功能,我的问题是为什么在dtor私有的情况下无法实现?

c++ inheritance final virtual-inheritance

13
推荐指数
5
解决办法
2万
查看次数

标签 统计

c++ ×1

final ×1

inheritance ×1

virtual-inheritance ×1