我有一个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(); }
}
我想知道是否有一种“首选”方式来做到这一点(甚至可能不涉及上述两种选择),或者这只是一个偏好问题。谢谢。