Это довольно простая проблема, но я хотел бы получить информацию о том, что такое лучшая практика. Моя проблема заключается в том, как вы распространяете перечисление из подкласса в класс более высокого уровня, чтобы он отображался вызывающему абоненту основного класса?Распространение класса enum классу более высокого уровня
Например, скажем, у меня есть классный велосипед. Велосипед будет инициализировать подклассы Wheel, Frame, Chain и т. Д., Которые составляют байк. В кадре может быть перечисление, такое как FrameColor, Chain может иметь перечисление, такое как LinkType, и т. Д. Теперь предположим, что некоторый код более высокого уровня хочет построить класс Bike. Конструктор Bike требует, чтобы вызывающий пользователь указывал LinkType, FrameColor и т. Д. Я бы хотел, чтобы исключить определения enum внутри глобального файла заголовка, так как это плохой стиль C++.
Два возможных подхода я думал, но там должно быть проще, чище путь:
Используйте абстрактный класс определения интерфейса
вперед объявить перечисление
Учитывая использование операционного о «подклассов» Я считаю, что они имеют 'Frame' определены как вложенный класс 'Bike'. – Angew