A
次のようなクラスがあります。
class A {
// A's internal state
public:
void someMethod();
void anotherMethod();
};
A
別のクラス内で使用したいB
。B
のサブタイプにはなりたくありませんが、のパブリック メソッドに何らかの形で のユーザーがアクセスできるようにしA
たいと考えています。A
B
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 つの選択肢を含まない方法があるかどうか)、または単に好みの問題であるかどうかを知りたいです。ありがとう。