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