C++中类的继承

一、类的继承
1、在解决问题时,先查看当前现在的类能否解决部分问题,如果可以则把旧的继承后再拓展来缩短解决问题的时间,降低解决问题的难度,继承就是为了让代码能够重复使用。

2、当面临一个复杂问题时,可以先把问题进行分层,每层的类解决一部分问题,然后通过继承进行汇总,最终得到一个解决问题的类。

二、继承的基本语法
1、继承表
一个子类可以继承多个父类,每个类的继承方式可以不同。

class 子类:继承方式 父类1,继承方式 父类2,... //继承表
{
   

}

2、继承方式
public 公有继承
private 私有继承
protected 保护继承
3、继承方式的影响

    父类        内部    子类    外部    友元   
    public      yes     yes     yes     yes
    protected   yes     yes     no      yes
    private     yes     no      no      yes
    注意:继承方式并不影响父类中的成员在子类的访问的权限,而影响成员到子类中变成什么访问属性。

    父类        public继承      protected继承   private继承
    public      public          protecte        private
    protected   protected       protected       private
    private     private         private         private

三、继承的基本特点
1、子类会继承父类的所有成员(公有、私有、保护)。
注意:子类对象完全可以当作父类对象使用,子类对象与父类对象没有本质上的区别。

2、向上和向下的类型转换
子类转换到父类:子类的指针或引用转换成父类的指针或引用,是一种缩小类型的转换,对于编译器来说是安全的(用父类指针或引用指向子类对象)。
父类转换成子类:父类的指针或引用转换成子类的指针可引用,是一种放大类型的转换,对于编译器来说是危险的(用子类指针或引用指向父类对象)。
注意:编译器仅仅是检查指针或引用的数据类型,而对实际引用的目标对象不关心(构成多态的基础)。

3、子类会隐藏父类的同名成员
1、子类依然会继承父类中的同名成员,但是会隐藏父中的同名成员,在子类中并不直接访问父中的成员。
2、可以通过域限制定符访问 obj.Base::成员名
3、可以使用父类的指针或引用来指向子类对象,编译器就会把子类对象当作父类对象来看待,访问的成员就是父类中的。</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值