Предположим, у меня есть два класса:Какая лучшая практика программирования для моделирования развитого класса?
class SwordsMan{
/*...*/
virtual SwordsMan* evolve()
};
class Warrior: public SwordsMan{
/*...*/
};
То, что я пытаюсь стремиться, что фехтовальщик превращается в воина, как только он имеет достаточный опыт. Что было бы лучшей практикой для реализации этой функции evolve(), учитывая, что я хочу удалить «этот» объект SwordsMan после его развития?
, что полностью зависит от того, как вы хотите, чтобы «Мечник» превратился в «Воина». Кстати, я бы дважды подумал, если наследование - правильный путь. Возможно, «Warrior» - это просто титул, который может иметь «Swordsman». – user463035818
Исправьте меня, если я ошибаюсь, но я думал, что, поскольку у воина есть дополнительные способности и свойства, которых нет у обычного SwordsMan (включая способности фехтовальщика), то наследование было бы правильным. Кроме того, почему голос? – AspiringMat