我有以下类(class):
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函数,但大家都说复合比继承好!那么哪个更好呢?
编辑:假设两个条件:是一个关系,否则,假设我将“点”分类为提到的“A”类,并且我有一个具有纬度、经度和海拔的 gps 数据,在某些类中我想要向其添加一些坐标信息。不清楚gps数据是一个点还是有一个点!
最佳答案
这取决于您的类定义以及基类和继承类之间的关系。
让我告诉你一个例子。假设有一个类定义了一把枪。警察或士兵可能有枪,但他们都不是枪。因此,您最好将警察和士兵类定义为将枪支类作为其成员。类继承的这种用法称为“has-a”关系。
但是,如果你想定义一把具有特殊功能的新枪,你可以继承枪类并编写一些新的功能来演示这些功能。这就是所谓的“is-a”关系。
关于c++ - 从值类继承还是复合呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44995417/