派生类到基类转换的可访问性
对下面这段源自 c++ primer 的一小段话,我研究了半个多小时,总算是大概理解了,但还是有个地方不清楚,特来求教:
如果是public继承,则用户代码和后代码类都可以使用派生类到基类的转换。
如果类是使用private或protected继承派生的,则用户代码不能将派生类型对象转换为基类对象。
如果是private继承,则从private继承类派生的类不能转换为基类。
如果是protected继承,则后续派生类的成员可以转换为基类类型。
这段话一共四句,第一句很好理解,第四句也理解了。
关键是第二句和第三句:
我是这样理解的:
不论继承的层次有几层(A继承B,B继承C......),只要第一层的继承关系是private或者protected的,后续的所有子类,子类的子类......都不能转换为基类。
我觉得第二句和第三句都是这个意思,可如果是这样的话,为什么要写成两句话?或者说为什么还特别用第三句强调一下private?
求高人指点下,对于这个第二句和第三句,我到底哪儿理解错了~~