我有以下几个类:
class A{
int x;
int y;
int z;
public:
int getX();
int getY();
int getZ();
//...
}
class B{
int x;
int y;
int z;
double rotation;
}
class C{
int x;
int y;
int z;
double dir;
double index;
}
类B和C有共同的A类参数,从A类继承或使用复合并在B和C类中存储A对象是一种好习惯吗?
从A类继承时,没有必要重新实现B和C的A函数,但是每个人都说复合优于继承!哪一个更好?
编辑:假设两个条件:是 - 一个关系,否则,假设我是班级"点" as" A"提到的课程和我有一个具有纬度,经度和海拔的gps数据,在某些课程中我想为它添加一些坐标信息。目前尚不清楚gps数据是一个点还是有点!
答案 0 :(得分:4)
这取决于你的班级定义以及基础班级和非班级班级之间的关系。
我来告诉你一个例子。假设有一个类定义了一个枪。警察或士兵可能有枪,但他们都不是枪。所以,你最好定义警察和士兵课程,让他们成为枪支班级。类inheit的这种用法被称为'has-a'关系。
但是,如果要定义具有特殊功能的新枪,则可以继承枪类并编写一些演示这些功能的新功能。这就是所谓的'是-a'关系。