170 похожих чатов

Если я после работы конструктора я должен получить человека с

рукам и ногами, то где как не в конструкторе это делать?

23 ответов

49 просмотров

Можно заранее создать руки и ноги и передать их в конструктор 😏

Anatoly-Shirokov Автор вопроса
Alexander Karaev
Можно заранее создать руки и ноги и передать их в ...

я скажу больше, можно все, все определяет принятый уровень абстракции

Alexander Karaev
Можно заранее создать руки и ноги и передать их в ...

И конструктор их потом положит в поля класса, которые уже были созданы при описании класса. Не совсем все таки понимаю. Разве можно заставить конструктор создать новое поле в классе?

The Pressbraker
И конструктор их потом положит в поля класса, кото...

Почему ты считаешь, что там есть поля рук и ног?

The Pressbraker
И конструктор их потом положит в поля класса, кото...

Нет, новое поле создать нельзя, можно инициализировать существующее

Anatoly-Shirokov Автор вопроса
The Pressbraker
И конструктор их потом положит в поля класса, кото...

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; }; А дальше ты волен в конструкторе создать полноценного человека с ругами и ногами, а после отстреливать по мере протекания игры, например

Alexander Karaev
Можно заранее создать руки и ноги и передать их в ...

Для начала нужно построить фабрики для производства рук и ног

Anatoly Shirokov
class human { std::unique_ptr<leg> left_leg_opt...

Это я понимаю. Тут поля уже есть. Ты просто наполняешь их данными. То есть места для руг и ног уже есть. Конструктор может их заполнить. Ты это имел ввиду присоединить значит. Теперь понял. Просто в некоторых языках там ты можешь действительно создать класс только с полем голова и потом без проблем присвоить переменную , где будет поле нога у человека и поле нога на ходу создаться (даже если изначально его в описании класса не было) это я понимал за понятие присоеденить, в c++ так нельзя.

Michael
Для начала нужно построить фабрики для производств...

и еще пул рук завести для оптимизации, чтобы не ходить в фабрику лишний раз

Anatoly-Shirokov Автор вопроса
The Pressbraker
Это я понимаю. Тут поля уже есть. Ты просто наполн...

я написал присоединить, имея ввиду "создать", "проинициализировать" в конструкторе соответствующие поля класса.

Michael
Для начала нужно построить фабрики для производств...

это же имеет смысл, если есть несколько разных рук и ног. если все одинаковые, то каков смысл в фабриках 🤔?

Anatoly-Shirokov Автор вопроса
Michael
Ну, да. Вдруг кому-то не нужна уже

не, лучше в магазе выставить как товар и монетизировать покупку ног и рук

Anatoly-Shirokov Автор вопроса

это часто антипаттерн - типа создается недообъект, а после типа конструируем

Ну т.е сначала одну половинку человека в конструкторе и потом вторую в методе?)

Это для полиморфных классов, если не получается сделать иначе

Каким образом?

Можно пример?

Зависит всё от архитектуры приложения

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
9
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Карта сайта