|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.08.2011, 14:59 | #1 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Копирование экземпляров класса
Здравствуйте, народ. Такой вопрос: есть к примеру 2 переменные пользовательского класс TMyClass. Естественно, в этом классе может быть объявлено неограниченное количество дополнительных полей разных типов.
Так вот, как скопировать содержимое класса по одной переменной в другую? Имеется в виду чистое копирование данных в памяти. П.С. Понимаю, что это пахнет сериализацией, но тут не нужно сохранять в файл, а просто осуществить копирование данных в памяти. Спасибо!
"ковыряю изнутри" (с)
|
27.08.2011, 15:08 | #2 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Object2.Assign(Object1) ?
пыщь
|
27.08.2011, 15:19 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ассинг же от TPersistent достается?
или уже не так в последних версиях? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
27.08.2011, 15:35 | #4 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
А что мешает наследовать TPersistent, он же для этого (не только) и писался, чтобы была возможность компировать объекты, а не получать на них ссылку
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
27.08.2011, 15:36 | #5 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
т.е. кроме как прямого копирования всех полей из одной переменной в другую и создания объектов в классе, больше способов однострочных не существует?
"ковыряю изнутри" (с)
|
27.08.2011, 15:37 | #6 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
т.е. вы хотите сказать, что если у меня поле класса содержит TStringList, а в нем связанные со строками объекты, то TPersistent скопирует и эти данные?
"ковыряю изнутри" (с)
|
27.08.2011, 15:45 | #7 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
Наследники содержат методы предков. Это значит что вы можете использовать метод Assign
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
27.08.2011, 15:59 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
кхм, в Delphi 6 TPersistent, лишь интерфейс для копирующихся объектов.
TStrings, переопределяет метод Assign, и копирует все сам. значит, ТС грозит тоже самое, написать метод для копирования/присваивания Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
27.08.2011, 16:19 | #9 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
я так уже и понял... ибо полагаться на Assign что-то мне сомнительно. Чую, что утечки пойдут. Значит все-таки по старинке? Писать метод, в котором будут копироваться данные из одного экземпляра в другой?
"ковыряю изнутри" (с)
|
27.08.2011, 16:34 | #10 | |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
Цитата:
Код:
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Печатать репорт в несколько экземпляров | chugo | Microsoft Office Access | 1 | 27.09.2010 06:27 |
Сортировка массива экземпляров класса по именам | Ciberal | Общие вопросы C/C++ | 1 | 18.05.2010 23:08 |
2-мерный динамический массив экземпляров класса. С++ | Парсифаль | Общие вопросы C/C++ | 1 | 29.12.2009 14:35 |
копирование всех полей класса | Juffin | Общие вопросы Delphi | 1 | 19.05.2009 19:16 |
При создании нескольких экземпляров класса приложение зависает | Mixasik | Общие вопросы C/C++ | 1 | 25.04.2009 13:25 |