我来一一回答你问题:
1 这个图片中 派生类b继承基类a的过程中那个k是根本就没有了是吗?
答: 对,派生类B继承基类A的过程中那个k,在B中根本是不可见的。你可以认为它没有了(销声匿迹,无论如何也访问不到了)。
2 为什么基类的i j变成派生类中的私有了?
答:因为是私有继承,你可以这样:
无论何种继承,在派生类B中,你都将A中继承过来的成员都加上这种继承权限:
***如若是公有继承,在B中,你可以将A中的 i j k都加上public.
那么结果是:
public public: int i,j; //俩public结果还是public。对吧?故i,j在B中还是public权限。
public private: int k; //private比public更严密,所以取private。故k在B中是private权限。
***同理,如果是私有继承,你自己在草稿纸上按照我的方法写一下:
private public: int i, j; //因为private比public更严密,所以取private。故i,j在B中是private权限。
private private: int k; //两个private结果还是private。故k在B中是private权限。
--------------------
就是以上这些,看懂了吧?不懂继续追问
“派生类b继承基类a的过程中那个k是根本就没有了是吗?”:是的,父类的私有成员是不能被继承的,只要是私有继承,父类的能被继承的东西都会变成私有的。
下面是引用的:
继承与派生机制的核心是在派生类中加入新的成员,程序员可以根据实际情况的需要,给派生类添加适当的数据成员和成员函数,来实现必要的新功能。
派生类对基类各种成员访问权限如下:
(1)基类公有成员和保护成员都相当于派生类的私有成员,派生类只能通过自身的函数成员访问他们。
(2)对于基类的私有成员,无论派生类内部成员或派生类使用者都无法直接访问