少し補足
>>810 の class A を犬、class B を桃太郎として考えてみよう
class Awrapper は犬の機能を抽出したペットというクラスになり、class Bsuper は人って事になるかな
class Pet {
 public: void peropero() { m_self->peropero(): }
 private: Dog* m_self;
};
ラッパーは継承しないほうが隠蔽度が上がるからこの実装に問題は無いと思う
class Human {
 public: void peropero() { m_dog->peropero(); }
 private: Dog* m_dog;
}; 
人のクラスに舐めるメソッドが存在するのは少し変だけど、実装上の都合でこうなるのは有りえる事
原理主義者は怒るだろうけど絶対ダメって話じゃないと思う(無論、異論は認める)

かくしてペット( Awrapper )と人( Bsuper )の実装が舐める(peropero)に関しては同じになってしまったが、
この2クラスの性質は明らかに異なる
>>810 の後半はペットから桃太郎を派生しているからオブジェクト指向的にはダメで、
Awrapper を Bsuper にして、人から桃太郎を派生させる様にすれば問題は無いんじゃなかろうか