Рассмотрим диаграмму классов:Design Issue: Пытаясь избежать дублирования кода при использовании Consts
Автомобиль имеет постоянную скорость макс 200 км в час, и автобус 100 км в час. Я представляю это как поле const maxSpeed в подклассе;
Как заставить getMaxSpeed () вернуть эту константу. Это простой пример только для иллюстрации моей проблемы, поэтому дублирование getMaxSpeed () для каждого подкласса мне не поможет.
Есть ли способ сделать это?
Я уже рассматривал решение избежать consts и использования виртуальных свойств, но тогда каждый экземпляр класса будет содержать поле maxSpeed, что является пустой тратой пространства.
Вам не нужно поле для виртуального объекта. Просто сделайте это 'virtual int MaxSpeed {get {return 200; }} ' – knittl
, это правильно. который пахнет решением, хотя тогда есть вызов функции. Я хотел, чтобы consts заставил компилятор имплантировать эти числа для меня – wolfovercats
Если вы хотите 'const', он не может быть виртуальным. Компилятор не может встроить константу из производного класса. – Gabe