C++的多种继承方式

C++类的继承

继承的意义在于代码可以复用,在原有的基础上添加新功能就变成了新一代产品了(就像移动电话发展史一样,从大哥大到现在的智能手机,代代相传添砖加瓦,单车变摩托,平房变别墅。究其本质是不变的),继承也是为了多态服务的。

class的继承分为单继承,多继承,菱形继承,虚拟继承,菱形虚拟继承。

单继承:

单继承就是子类Derived(派生类)继承自一个基类Base (父类),其实就是子承父业。其在C++中的语法是:class Derived:[继承类型] Base继承类型有:public,protect, private。单继承计算派生类大小方式是:sizeof(Base)+派生类新增成员的大小

这三种继承权限的区别是:

  • public,以这种权限继承并没有改变基类的任何权限。
  • protected,以它继承,基类的public权限将会被改变为protect。也就是说基类的成员只能在基类或派生类内部访问,不能在外部调用。protect与private在同一类中的作用是一样的(体现封装性),它们的区别是在继承中基类的protect成员可以在派生类中使用,而基类的private成员只能在基类中使用。
  • private,这种方式继承,基类的public,protect权限会被改为private,也就是说基类的所有权限都变成了私有,只能在其内部访问。 
    单继承例:

    class Base
    {
    public:
    void SetValue(int pri, int pro, int pub)
    void Show()
    private:
    int _pri
    ;
    protected:
    int _pro;
    public:
    int _pub;
    };

    class Derived:public Base
    {
    public:
    void SetDerived(int pri, int pro, int pub)
    {
    _pub = pub;
    _pro = pro;
    //_pri = pri; // 基类中私有的成员继承下来,不能访问
    _pubD = pub;
    _proD = pro;
    _priD = pri;
    }
    private:
    int _priD;
    protected:
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值