0

我有以下课程:

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 类继承或使用复合并将 A 对象存储在 B 和 C 类中是一种好习惯吗?

从 A 类继承时,不需要为 B 和 C 重新实现 A 函数,但每个人都说复合比继承更好!那么哪个更好呢?

编辑:假设两个条件:is-a 关系,否则,假设我将“Point”类列为提到的“A”类,并且我有一个具有纬度、经度和海拔的 gps 数据,在某些类中我想添加一些协调信息给它。不清楚gps数据是点还是有点!

4

1 回答 1

4

这取决于您的类定义以及基类和继承类之间的关系。

让我告诉你一个例子。假设有一个类定义了一把枪。警察或士兵可能有枪,但他们都不是枪。因此,您最好将警官和士兵类定义为将枪支类作为其成员。类继承的这种用法就是所谓的“has-a”关系。

但是,如果你想定义一个具有特殊功能的新枪,你可以继承 gun 类并编写一些新的函数来演示这些特性。这就是所谓的“is-a”关系。

于 2017-07-09T11:05:02.353 回答