c++ public、protected、private继承方式

公有继承:

 

私有继承:

私有继承可以将基类的原有对外接口都封闭的作用。那么在派生类之外通过派生类的对象就不能直接访问从基类继承来的成员和成员函数,因为通过private这种方式继承的时候,继承过来的那些基类的成员都变成了私有的了,所以在派生类外就不能访问了,但是在派生类里面,还是可以访问的。

所以这个时候,如果还是想访问基类中的成员,就必须在派生类中重新定义对外的访问接口。

基类定义:

派生类定义:

在派生类中,需要在定义访问的接口,才能使得派生类的对象访问到基类的成员。

所以派生类中重新定义了move函数,getX,getY函数。

主函数中访问:

在主函数中,通过派生类 Rectangle的实例对象访问基类的成员x和y,以及基类的move函数。

 

保护继承:

 

protected成员的特点:

 protected 修饰的成员在类外不能直接通过类的对象访问

但是在继承这个类的派生类B内的成员函数中,可以直接访问!!

【对外隐藏protected修饰的成员,但是又可以让派生类直接访问protected修饰的成员。】

而private 修饰的成员,在类外不能直接访问,在派生来的成员函数中,也不能直接访问,而是一定要通过基类提供的访问接口访问!

这就是private和protected的区别。

 

所以上面说的,通过private的方式继承的对象,基类的任何成员在派生类中都会变成private的,那么在定义派生类的派生类的时候,就会满足上面的这种要求了。

而以protected的方式继承产生的派生类,定义派生类的派生类的时候也是满足上面所说的。

所以,以private和protected方式继承得到的派生类,对于当前派生类的对象的访问来说,都是一样的,都是不能直接通过派生类的对象直接访问基类的成员了,他们两种继承方式的主要区别就在于上面说的派生类的派生类中的访问权限不同了吧。

以上——【我的理解】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值