почему в первом варианте вот это "d.c.e = 77;" не тронуло исходное t? а во втором варинте, та же конструкция без return затронула t
|
я так понимаю, return возвращает копию чтоли, а не ссылку на локальную переменную?
|
Именно так. Самая мякотка что потребуется метод для модификации этой приватной проперти, ибо наружное изменение никакого влияния на внутренности не окажет.
|
Цитата:
тебе уже пояснили, ты создаешь своей ф-ей 2 разных объекта, никакого исходного (общего для них обоих) t не существует, для каждого оно локально. return тут вообще не при чем, что ты ему скажешь то он вернет. |
Цитата:
|
Цитата:
Я просто подумал что ТС привел пример с двумя объектами в порядке преобразования реальной задачи к абстрактной для форума, чтоб никто как не догадался что он там задумал. Поскольку задавать вопрос об ингрессе двух отдельных никак не связанных объектов это нонсенс. |
Цитата:
|
Ну в каком смысле - если снаружи в этот объект записать число, то внутри в этом объекте такого числа не будет.
Разумеется внутри делается объект по имени и он возвращается. Разницы тут никакой в том самом смысле. |
kostyanet,
Короче, я завтра собираюсь бухать, если не забуду, я после поллитра гляну твое сообщение. |
Цитата:
Цитата:
Не существует никаких локальных переменных. Каждый вызов функции Test создает новую область видимости, в которой создаются абсолютно новые переменные, в которые записываются ссылки на абсолютно новые объекты. Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 06:19. |