我有一个A
看起来像这样的类:
class A {
// A's internal state
public:
void someMethod();
void anotherMethod();
};
我想A
在另一个类中使用B
。我不想B
成为 的子类型A
,但我希望A
的公共方法能够以某种形式被B
的用户访问。
实现此目的的一种方法是简单地将 的实例包含A
为 的公共成员B
:
class B {
public:
A a;
// other members
};
另一个是A
成为 的私有成员,并提供围绕的公共方法的B
包装器:A
class B {
A a;
public:
void someMethod(){ a.someMethod(); }
void anotherMethod(){ a.anotherMethod(); }
}
我想知道是否有一种“首选”方式来做到这一点(甚至可能不涉及上述两种选择),或者这只是一个偏好问题。谢谢。