在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的构造函数具有私有访问权限,故编译器会报错)。

你可能感兴趣的:(C++)