我是 C++ 新手,我想从一开始就学习好的实践,所以我用一个例子解释的问题是:
拥有:
class A
{
int mNumber;
};
如果我需要在 B 类中使用 A 类,什么更好?包含一个对象?
class B
{
A * mpA;
int mColor;
};
还是继承A类?
class B : public A
{
int mColor;
};
有什么好的习惯可以用一般的方式来做到这一点吗?
最佳答案
优先选择组合而不是继承 - 但请记住,对于每种特定情况,其他方法可能会更好。
组成是:
class A
{
B b;
};
继承是:
class A : public B
{
};
当关系为“has-a”时使用第一个,当关系为“is-a”时使用后者。
您的示例是松散类型的组合 - 如果成员是指针,它并不(必然)表示所有权。
关于c++ - 在类中包含对象还是更好地从该类派生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28020843/