class A {
  public: void Func1( );
 };
 class B {
  public: void Func2( ) { m_pA->Func1( ); }
  private: A* m_pA;
 };
元々↑のようになっていたコードを、
 class Awrapper {
  public: void Func1( ) { m_pA->Func1( ); }
  private: A* m_pA;
 };
 class B : public Awrapper {
  public: void Func2( ){ Func1( ); }
 };
あるいは
 class B : private Awrapper {
  public: void Func2( ){ Func1( ); }
 };
と書き直すのはありなんですか?