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

本文介绍了一种在C++中实现不可被继承的类的方法。通过将类NoInherite的构造函数设置为私有,并让其作为虚基类被Seal类继承的方式,阻止了从Seal派生新类的可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值