Для задания я пытаюсь эмулировать эту структуру классов (и узнаю, как использовать виртуальные / абстрактные классы. У меня есть все части на месте, но я столкнулся с проблемой.
Я хочу, чтобы у каждой лодки был по крайней мере корпус внутри нее. Этими объектами корпуса будут не Hulls, а дети Hull (MonoHull, MultiHull). Проблема в том, что я не могу понять, как добавить тип ‘Hull’ к классу лодки, потому что VS говорит мне, что вы не можете сделать объект из абстрактного класса. Как я должен идти об этой проблеме? Спасибо!
Если я правильно понял, MonoHull
а также MultiHull
являются специализациями Hull
учебный класс.
Что вы можете сделать в этом случае MonoHull
а также MultiHull
от Hull
класс, а затем включить Hull*
член в вашем Boat
класс, который может указывать на MonoHull
или же MultiHull
объект.
То же самое с Propulsion
класс и его Paddle
а также Sail
производные.
Вы можете добавить Hull*
указатель на Boat
класс, который указывает на экземпляр объекта любого из Hull
подклассы. С использованием virtual
Функции в базовом классе, вы можете вызывать переопределенные версии функций во время выполнения.