Унаследовать от класса значений или составить его?

У меня есть следующие классы:

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 нет необходимости повторно реализовывать функции A для B и C, но все говорят, что составной лучше, чем наследование! так какой из них лучше?

Редактирование: предположим, что оба условия: отношение is-a, а в противном случае предположим, что у меня есть класс «Point» в качестве упомянутого класса «A», и у меня есть данные GPS, которые имеют широту, долготу и высоту, и в некоторых классах я хочу добавить некоторые согласовать информацию с ним. Не ясно, что данные GPS является точкой или имеет точку!

0

Решение

Это зависит от ваших определений классов и отношений между базовыми и унаследованными классами.

Позвольте мне рассказать вам пример. Предположим, есть класс, который определяет оружие. У полицейского или солдата может быть пистолет, но ни один из них не является пистолетом. Таким образом, вы должны определить классы офицеров полиции и солдат, чтобы иметь класс оружия в качестве своего члена. Такое использование класса inheit — это так называемые отношения «есть».

Однако, если вы хотите определить новый пистолет со специальными функциями, вы можете унаследовать класс оружия и написать несколько новых функций, которые демонстрируют эти функции. Это так называемые отношения «есть».

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]