private继承其实意味着implemented-in-terms-of(根据某物实现出)。如果你写的class Derived以private继承自class Base,你的用意是为了让 Dervived类采用到Base类中的某些特性,而不是因Dervied对象与Base对象存在一些观念上的关系。
关于is-implemented-in-term-of(根据某物来实现),尽可能使用复合,必要时才使用private继承。主要就是当protected成员或virtual函数牵扯进来的时候。
另外,涉及 space optimization的极端情况可能会使你倾向于 private inheritance,而不是 composition。