class Awrapper {
  public: void Func1( ) { m_pA->Func1( ); }
  private: A* m_pA;
 };

Aという型が実装に使われてるのを隠すんなら、
そんなクラス名は不都合だし、メソッド名も同じになるのも苦痛。
型を継承した関係じゃないのに、
実装にある型の存在を予感させたりするのはブサイク。
上の例は class B {public void foo() {_a->Func1();}}; の形にしないとウマミが無い。

class DecratedA : public A {};

にして継承関係にすれば、
クラス名もメソッド名も自然になる。

コンストラクタでA *を受け取るようにして、
内部でそれに委譲しながら独自処理を行うと、
GoFで言うところのDecoratorパターンになる。

特性を動的に追加したりすることなく、
再帰的に合成することもなくて、
あるインスタンスへの間接的なアクセスを提供するなら、
Proxyパターンとなる。