|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.04.2012, 00:30 | #1 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Более корректный способ присвания посредством...?
Всем привет.
Волнует один вопрос. Суть в следующем: Например, есть два класса Код:
p.s. Или может просто перегрузить оператор присваивания для класса TMyClass2 ?
Будь проще и люди к тебе потянутся
Последний раз редактировалось spamer; 06.04.2012 в 00:41. |
06.04.2012, 07:12 | #2 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Если присваиваешь классы, копируется только ссылка. Перегрузить оператор '=' нельзя. Для мелкого копирования обычно используется метод Clone, который есть у некоторых стандартных классов, поэтому тебе лучше сделать Clone, а не Assign. Структуры, в отличие от классов, хрянятся без ссылок (как в C++), и присвоение делает мелкую копию объекта.
Нужно ли копировать сам объект, или же можно использовать один экземпляр - смотри по ситуации. Бывают очень неприятные баги, когда объект как бы изменяется сам по себе, без внешнего воздействие. В том числе и при мелком копировании, когда забываешь клонировать поля копируемого класса. Код:
Код:
Код:
Последний раз редактировалось ds.Dante; 06.04.2012 в 08:54. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необычный оператор присвания и результат | Стремящийся | Общие вопросы C/C++ | 14 | 29.02.2012 19:04 |
Корректный импорт в БД | Dmitry1983 | PHP | 4 | 22.08.2011 21:40 |
Какое программирование в наше время более востребовано и более рентабельно? | iukash | Свободное общение | 18 | 29.10.2009 13:02 |
Корректный ли код? | Hero | Общие вопросы Delphi | 9 | 07.03.2008 03:42 |
Корректный выход | Constellation | БД в Delphi | 3 | 07.12.2007 15:47 |