在C++中实现不可继承的类

逛下bbs,“在C++中实现不可继承的类”,瞒有意思的。

class NoInherite                                                                                                   
{
    friend class Seal;
    private:
        NoInherite(void) {}
        ~NoInherite(void) {}
};

class Seal: virtual private NoInherite
{
    public: 
        Seal(void){}
        ~Seal(void){}
};

注意:NoInherite做为虚基类被Seal继承(virtual不可少,以virtual继承时,若我们尝试去定义了Seal的派生类,由于NoInherite的构造函数需要被Seal的派生类直接调用,而NoInherite的构造函数具有私有访问权限,故编译器会报错)。

原文地址:https://www.cnblogs.com/openix/p/3251881.html