复习继承派生

昨天一个家公司电面我,问了这个继承派生的问题,。这个问题几年前就没搞懂,现在还是不懂,当然我回答了一塌糊涂。现在我们再来复习一下,这次一定记住!!

查了那么多资料,还是百度上写的好。

公有继承(public)、 私有继承(private)、保护继承(protected)是常用的三种继承方式。
1. 公有继承(public)
公有继承的特点是 基类的公有成员和保护成员作为 派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。
2.  私有继承(private)
私有继承的特点是 基类的公有成员和保护成员都作为 派生类 的私有成员,并且不能 被这个派生类的子类所访问。
3. 保护继承(protected)
保护继承的特点是 基类 的所有公有成员和保护成员都成为 派生类 的保护成员,并且只能被它的派生类成员函数或 友元访问,基类的私有成员仍然是私有的。
下面列出三种不同的继承方式的基类特性和 派生类特性。
 
public
protected
private
公有继承
public
protected
不可见
私有继承
private
private
不可见
保护继承
protected
protected
不可见
为了进一步理解三种不同的继承方式在其成员的可见性方面的区别,下面从三种不同角度进行讨论。

公有方式

(1)  基类成员对其对象的可见性:
公有成员可见,其他不可见。这里保护成员同于私有成员。
(2)  基类成员对 派生类的可见性:
公有成员和保护成员可见,而私有成员不可见。这里保护成员同于公有成员。
(3)  基类成员对 派生类对象的可见性:
公有成员可见,其他成员不可见。
所以, 在公有继承时, 派生类 的对象可以访问 基类 中的公有成员; 派生类的成员函数可以访问基类中的公有成员和保护成员。这里,一定要区分清楚 派生类的对象和派生类中的成员函数对 基类的访问是不同的。

私有方式

(1) 基类成员对其对象的可见性:
公有成员可见,其他成员不可见。
(2) 基类成员对派生类的可见性:
公有成员和保护成员是可见的,而私有成员是不可见的。
(3) 基类成员对派生类对象的可见性:
所有成员都是不可见的。
所以, 私有继承时,基类的成员只能由派生类中的成员函数访问,而且无法再往下继承。

保护方式

这种继承方式与 私有继承方式的情况相同。两者的区别仅在于对 派生类的成员而言,对基类成员有不同的可见性。
上述所说的可见性也就是可访问性。关于可访问性还有另的一种说法。这种规则中,称 派生类的对象对 基类访问为水平访问,称派生类的派生类对基类的访问为垂直访问。

  看到了没??怎么样 ?清楚了吧。百度上讲解的还是很好很好理解的。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值