继承 c++

通用继承

继承的好处: 减少代码重复量
class 子类 : 继承方式 父类
如: class Java :pubilc BasePage

继承方式 :

子类 public 继承 :
父类中 private 子类不可访问
父类中 protected 子类可protected 访问
父类中 public 子类可public 访问
子类 protected 继承 :
父类中 private 子类不可访问
父类中 protected 子类可protected 访问
父类中 public 子类可protected 访问
子类 private 继承 :
父类中 private 子类不可访问
父类中 protected 子类可private 访问
父类中 public 子类可private 访问

ps: 私有成员只是被隐藏了 但是还是会继承下去 占有内存

继承同名成员处理方式:

在调用中 直接调用只会调用子类数据, 想调用父类数据需要加作用域。
如:cout << s.Base::m_A<<endl;
s.Base::func() ;

同名的静态处理方法:

首先 静态 类内定义 类外初始化。
可通过对象访问 (正常方法)
Son s;
s.m_A;
s.func();
s.Base::func();
可通过类名访问( 不用创建对象 )
Son::m_A;
Son:;func();
链式访问父类作用域
Son::Base::m_A;
Son::Base::fun();

多继承语法:

class 子类 : 继承方式 父类 , 继承方式 父类
(认了几个爹)
当父类中出现了同名成员,需要加作用域区分

菱形继承

两个于第二层父类拥有相同的数据 ,需要加作用域区分 ,但不需要两个数据 浪费内存。所以使用虚继承修饰最大的基类,不管从哪,拿到的只有一个数据。

虚继承

class 子类 : virtual 继承方式 父类
class Sheep: virtual public Animal { } ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值