我是C ++的新手,我想从一开始就学习好习惯,所以我的问题用一个例子来解释:
有:
class A
{
int mNumber;
};
如果我需要在B类中使用A类,那么更好的是包含一个对象?
class B
{
A * mpA;
int mColor;
};
或继承自A类?
class B : public A
{
int mColor;
};
有没有什么好习惯以一般的方式谈论这个?
答案 0 :(得分:2)
首选组合而非继承 - 但请记住,对于每种特定情况,另一种方法可能更好。
作文是:
class A
{
B b;
};
继承是:
class A : public B
{
};
当关系为" has-a"时使用第一个而后者是"是-a"。
你的例子是一种松散的构成 - 如果成员是一个指针,它并不(必然)表示所有权。