В этом случае вам скорее понадобится функция Car.fix(const Mechanic&)
, которая затем дает двигателю значение Mechanic
, скажем: Engine.fix(const Mechanic&)
, так как я предполагаю, что состояние Engine
будет изменено.
Первоначальная идея использования классов состояла в том, чтобы связать данные с помощью их функций доступа. Если вы делаете setter или getter, который просто возвращает внутренние данные, это означает, что ваши данные не связаны с функциональными возможностями доступа: ваш класс не завершен.
Вы хотите только предоставить новые данные, которые класс создает . Скажите Car.get_exhaust()
, а Car
не имеет выхлопа, а только производит его, когда вы об этом попросите. ;)
Или Fire Riefle.fire()
, в то время как механик не установит доступ к Riefle::Trigger
следующим образом: Trigger.fix_by(Mechanic)
, и тогда fix_by
позвонит скажем Mechanic.add_working_hour(0.5)
. XD