Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.06;
Скачать: CL | DM;

Вниз

Как скопировать объект?   Найти похожие ветки 

 
Woolen ©   (2002-12-24 15:25) [0]

Подскажите пожалуйста, как скопировать объект. Если написать, что переменная A равна B, то мы получим два скрытых указателя, ссылающихся на один и тот же объект в памяти. А надо, чтобы было два независимых объекта и два скрытых в переменных указателя, ссылающихся на разные объекты. Так, чтобы объект A можно было изменять независимо от объекта B. если кто знает, подскажите, как это делается?


 
Игорь Шевченко ©   (2002-12-24 15:35) [1]

Создать объект В, аккуратно переписать все свойства из объекта А в объект В :-)


 
MBo ©   (2002-12-24 15:41) [2]

>аккуратно переписать все свойства из объекта А в объект В :-)
Т.е. сделать Assign, если объект - наследник TPersistent.
Для самописанных классов имплементировать Assign самому.


 
han_malign ©   (2002-12-24 15:43) [3]

если пишешь компонент то наследование от TPersistent и вперед published свойства описывать, если простой класс - то общепринятый подход - копирующий конструктор, в C++ вызывается автоматом при присваивании классов, а в ОП - ручками a:=Tab.Create(b), либо как в TPersistent a:=Tab.Create; a.Assign(b);.

constructor Tab.Create(aFrom: Tab);{или procedure Tab.Assign(aFrom: Tab)}
begin
inherited Create;
FField1:=aFrom.FField1;
.......................
FPointerFieldSize:=aFrom.FPointerFieldSize;
GetMem(FPointerField,FPointerFieldSize);
move(aFrom.FPointerField^,FPointerField^,FPointerFieldSize);
.......................
FFieldN:=aFrom.FFieldN;
end;
- то-бишь ручками.



Страницы: 1 вся ветка

Текущий архив: 2003.01.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
1-15051
Groove
2002-12-25 06:57
2003.01.06
Как создать файл со своей структурой


3-14940
HazMat
2002-12-13 10:23
2003.01.06
SQLWNTM.DLL


1-15125
Andy BitOff
2002-12-22 22:39
2003.01.06
Контрол в пределах которого находится мышь


1-15136
qwerty2
2002-12-23 17:40
2003.01.06
Нажате клавиши Tab над элементом управления


1-15017
Ranikin
2002-12-24 15:21
2003.01.06
XPStyle - применение стиля XP при оформлении формы.