рукам и ногами, то где как не в конструкторе это делать?
Можно заранее создать руки и ноги и передать их в конструктор 😏
я скажу больше, можно все, все определяет принятый уровень абстракции
И конструктор их потом положит в поля класса, которые уже были созданы при описании класса. Не совсем все таки понимаю. Разве можно заставить конструктор создать новое поле в классе?
Почему ты считаешь, что там есть поля рук и ног?
Нет, новое поле создать нельзя, можно инициализировать существующее
Я об этом и говорю.
class human { std::unique_ptr<leg> left_leg_opt; std::unique_ptr<leg> right_leg_opt; std::unique_ptr<hand> left_hand_opt; std::unique_ptr<hand> right_hand_opt; }; А дальше ты волен в конструкторе создать полноценного человека с ругами и ногами, а после отстреливать по мере протекания игры, например
Для начала нужно построить фабрики для производства рук и ног
Это я понимаю. Тут поля уже есть. Ты просто наполняешь их данными. То есть места для руг и ног уже есть. Конструктор может их заполнить. Ты это имел ввиду присоединить значит. Теперь понял. Просто в некоторых языках там ты можешь действительно создать класс только с полем голова и потом без проблем присвоить переменную , где будет поле нога у человека и поле нога на ходу создаться (даже если изначально его в описании класса не было) это я понимал за понятие присоеденить, в c++ так нельзя.
и еще пул рук завести для оптимизации, чтобы не ходить в фабрику лишний раз
я написал присоединить, имея ввиду "создать", "проинициализировать" в конструкторе соответствующие поля класса.
это же имеет смысл, если есть несколько разных рук и ног. если все одинаковые, то каков смысл в фабриках 🤔?
Ну, да. Вдруг кому-то не нужна уже
не, лучше в магазе выставить как товар и монетизировать покупку ног и рук
В жизни так не работает...
это часто антипаттерн - типа создается недообъект, а после типа конструируем
Ну т.е сначала одну половинку человека в конструкторе и потом вторую в методе?)
Это для полиморфных классов, если не получается сделать иначе
Каким образом?
Можно пример?
Зависит всё от архитектуры приложения
Обсуждают сегодня