Наследование в c ++ и отношения "is-a" - PullRequest
0 голосов
/ 07 июля 2019

Я пишу простой симулятор охотника за добычей, чтобы тренироваться в упс.

Я написал класс worldBuilder для создания двумерного массива, в котором жертва и охотник могут перемещаться. Этот двумерный массив, который генерируется только один раз, должен быть известен всем охотникам и жертвам.

Моя идея состояла в том, чтобы создать класс hunters & class preys, который наследует 2d массив (карту мира) от класса worldBuilder.

С другой стороны, я знаю, что наследование должно быть отношением "есть". Например, "бейсболист человек?" или "наемный работник" -> да! -> класс baseballplayer и класс employee могут наследоваться, например, имя и возраст из класса person.

Ни hunter, ни prey не являются картами мира. Конечно, я могу передать 2d массив из main, но я хочу это с классами и объектами.

Так, как я могу сгенерировать одну карту мира, которая известна всем объектам-охотникам и объектам добычи?

1 Ответ

0 голосов
/ 07 июля 2019

Мне кажется, это вопрос дизайна.

По моему мнению, вы должны создать другой класс с указателем члена на worldmap, назовите его, например, «Entity».Затем сделайте так, чтобы и ваш охотник, и ваша жертва унаследовали этот новый класс.Таким образом, и ваши охотники, и жертвы смогут получить доступ к одной и той же карте мира.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...