如何定义一个不能被继承的类

本文深入探讨了编程领域中,为何大部分程序员难以晋升为架构师的原因,从构造控制方式、类继承机制以及C++11标准应用等方面,解析了成为优秀架构师所面临的挑战与必备技能。
class VString{//默认的存取控制方式就是私有
    VString();
    VString(char*);
    VString(string);
    friend class String;
};
class String:virtual VString{
public:
    String(){
        //写你的代码
    }
    String(char*){
        //写你的代码
    }
    String(string){
        //写你的代码
    }
};


String无法被继承,因为继承它的类会试图调用VString的私有构造函数。而String是Vstring的友元类,所以能继承VString。

VString也无法被继承,它的构造函数为私有的。但也不满足要求。因为它无法实例化对象。

或者用C++11的标准,加入关键词final

Reference

[1].http://ilewen.com/questions/2910

[2].http://blog.youkuaiyun.com/lazybin/article/details/8372793

转载于:https://my.oschina.net/lvyi/blog/346050

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值