A次のようなクラスがあります。
class A {
// A's internal state
public:
void someMethod();
void anotherMethod();
};
A別のクラス内で使用したいB。Bのサブタイプにはなりたくありませんが、のパブリック メソッドに何らかの形で のユーザーがアクセスできるようにしAたいと考えています。AB
Aこれを実現する 1 つの方法は、 のインスタンスをのパブリック メンバーとして単純に含めることBです。
class B {
public:
A a;
// other members
};
もう 1 つはA、 のプライベート メンバーになり、のパブリック メソッドのBラッパーを提供することです。A
class B {
A a;
public:
void someMethod(){ a.someMethod(); }
void anotherMethod(){ a.anotherMethod(); }
}
これを行うための「好ましい」方法があるかどうか (または、上記の 2 つの選択肢を含まない方法があるかどうか)、または単に好みの問題であるかどうかを知りたいです。ありがとう。