公有继承,保护继承,私有继承
(1) 在派生类中:三种派生方式下,都是只有基类的私有成员不能被访问。
(2) 关于基类成员的访问属性:
公有派生:基类各成员的访问属性均不变,基类的私有成员在派生类中不能被访问,也即被隐藏了,但这并不等于说基类的私有成员不能由派生类继承。
私有派生:基类各成员的访问属性均变成私有类型,基类的私有成员被隐藏。
保护继承:基类的公有成员,保护成员的访问属性都将变成保护的,基类的私有成员被隐藏。
(3) 派生类对象:公有派生下,派生类对象只能访问派生类和基类的公有成员。
私有和保护下,都不能访问基类的任何成员。
重要结论:在私有继承和保护继承下,基类所有成员在派生类中或派生类对象中的访问属性
都是相同的。那既然这样,这二者难道是一样的?其实他们是有区别的,当将派
生类作为新的基类继续派生时,区别就出现了:
例如:A类是B类的基类,B类是C类的基类。
1. 当B私有继承A时,由于B类中的A类所有成员都是私有的,因此无论C类是以什么方式来继承B类的,在C类中都无法访问A类的成员。
2. 当B保护继承A时,A类的公有成员和保护成员都变成保护成员了,这样无论C类是以什么方式来继承B类的,在C类中都可以访问A类的公有成员和保护成员。