Справка по абстрактному классу в переполнении стека

Для задания я пытаюсь эмулировать эту структуру классов (и узнаю, как использовать виртуальные / абстрактные классы. У меня есть все части на месте, но я столкнулся с проблемой.
введите описание изображения здесь

Я хочу, чтобы у каждой лодки был по крайней мере корпус внутри нее. Этими объектами корпуса будут не Hulls, а дети Hull (MonoHull, MultiHull). Проблема в том, что я не могу понять, как добавить тип ‘Hull’ к классу лодки, потому что VS говорит мне, что вы не можете сделать объект из абстрактного класса. Как я должен идти об этой проблеме? Спасибо!

1

Решение

Если я правильно понял, MonoHull а также MultiHull являются специализациями Hull учебный класс.

Что вы можете сделать в этом случае MonoHull а также MultiHull от Hull класс, а затем включить Hull* член в вашем Boat класс, который может указывать на MonoHull или же MultiHull объект.

То же самое с Propulsion класс и его Paddle а также Sail производные.

1

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

Вы можете добавить Hull* указатель на Boat класс, который указывает на экземпляр объекта любого из Hull подклассы. С использованием virtual Функции в базовом классе, вы можете вызывать переопределенные версии функций во время выполнения.

1

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