Форум программистов, компьютерный форум, киберфорум
Objective-C
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
1

Копирование объектов

09.04.2014, 23:11. Показов 1652. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Обнаружил, что я не понимаю каких-то очень базовых вещей. Был бы очень рад, если бы мне подсказали
Столкнулся с такой ситуацией, и не могу сам себе объяснить, почему происходит именно так:

Допустим, у меня есть два объекта моего класса. Я хочу заменить значение полей одного из них - значениями другого.
Когда я выполняю следующую тупую операцию, то ожидаемого эффекта нет:
Objective-C
1
object1 = object2;
А если вот так, то все происходит корректно:
Objective-C
1
2
3
object2.field1 = object1.field1;
object2.field2 = object1.field2;
...
Не могу понять, почему происходит именно так?
В первом случае, как я понимаю, мы говорим, что указатель <object1> будет теперь указывать на ту же область памяти, куда и <object2>.
Т.е. в этой области памяти находятся как раз все данные объекта <object2>, и, установив указатель на эту область, мы, вроде как, должны иметь возможность обращаться ко всем хранящимся там значениям..

Буду очень рад подсказкам, в чем я ошибаюсь. А то аж страшно ловить себя на мысли, что не понимаю основ
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2014, 23:11
Ответы с готовыми решениями:

Копирование объектов AD
Добрый день, нужна помощь в следующей ситуации: есть ветка AD с пользователями, есть ветка с...

копирование объектов
Подскажите,пожалуйста, как мне сделать копию объекта. Имеем obj1, хочу сделать obj2==obj1 при...

Копирование объектов
Здравствуйте. Мне необходимо сделать следующее: Поясняю: Есть у меня объекты (выделены...

Копирование GDI объектов
Речь скорее не о копировании самих объектов и их ресурсов для создания других объектов GDI. Есть...

1
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
10.04.2014, 07:43 2
Цитата Сообщение от kievkao Посмотреть сообщение
заменить значение полей одного из них - значениями другого
Вот так многие значения полей поместить в одно поле другого объекта? Занятно
Цитата Сообщение от kievkao Посмотреть сообщение
object1 = object2;
А "1" и "2" не нужно местами поменять?
Ибо вы сами сказали что так все хорошо:
Цитата Сообщение от kievkao Посмотреть сообщение
object2.field1 = object1.field1;
И если вы заменяете "поля" - заменяйте их. Ибо если вы присвоите указатели - объект-то не изменится...
Цитата Сообщение от kievkao Посмотреть сообщение
В первом случае, как я понимаю, мы говорим, что указатель <object1> будет теперь указывать на ту же область памяти, куда и <object2>.
На "начало" этой области.
Вы меняете указатели, и в первом случае object1 будет указывать туда же, куда и object2.
Цитата Сообщение от kievkao Посмотреть сообщение
Т.е. в этой области памяти находятся как раз все данные объекта <object2>
Говоря по-простому, да.
Ну так вы и сможете обращаться. Все, что доступно для object2 будет тем же самым и для object1 после такой операции:
Цитата Сообщение от kievkao Посмотреть сообщение
object1 = object2;
0
10.04.2014, 07:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2014, 07:43
Помогаю со студенческими работами здесь

Копирование объектов из WORD
Возможно ли скопировать обьекты(кружечки и тд) из WORD-файла на форму приложения? Ведь мы можем...

Копирование объектов по значению
Знаю, тема уже заезженная Но то ли у меня голова совсем уже не варит, то ли это действительно...

Глубокое копирование объектов с интерфейсами
Подскажите пожалуйста, если класс наследует интерфейсы, то как реализовать его глубокое...

Копирование объектов в AutoCAD 2019
Как перенести объект из одного окна(чертежа) в другое? Ctrl+C/Ctrl+V не работает, сами чертежи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru