子类以private方式继承父类,则父类的pubic、protected接口在子类变为private接口,而父类的private接口在子类变为不可访问的接口,
而且不存在子类到父类的转换。所以子类以private方式继承父类的话,子类继承了父类的protected和private接口和属性,这些部分成为了子类的实现部分,即可以在子类的成员函数中使用它们。子类并可以修改继承而来的接口的实现,还可以扩展更多的新的接口和属性。
使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员。这意味着基类方法将不会成为派生类公有接口的一部分,但可以在派生类的成员函数中使用它们。使用私有继承,基类的公有方法和保护方法将成为派生类的私有方法。简而言之,派生类不继承基类的接口。使用私有继承,类将继承实现。
private继承意味着implemented-in-temers-of(根据某物实现出)。如果你让class D以private方式继承class B,你的用意是为了采用class B内已经备妥的某些特性,不是因为B对象和D对象存在有任何观念上的关系。private继承纯粹只是一种实现技术(这就是为什么继承自一个private base class 的每样东西在你的class 内都是private;因为它们都只是实现枝节而已)。借用条款34提出的术语,private继承意味着只有实现部分被继承,接口部分应略去。如果D以private方式继承B,意思是D对象根据B对象实现而得,再没有其他意涵了。private继承在软件“设计”层面上没有意义,其意义只及于软件实现层面。