![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ссылка?
qadeveloper2 © (2007-09-20 22:51:00)Нет сейчас delphi, что бы проверить.
type
TMyArrays = record
str: array of string;
int: array of Integer;
end;
TMyType = array of TMyArrays;
var
MyType1: TMyArrays;
MyType2: TMyArrays;
begin
SetLength(MyType1, 10);
... тут любые операции по заполнению MyType1.
...
MyType2 := MyType1;
Что происходит при последнем присваивании: копируется Type1 в Type2, или у Type2 будет просто ссылаться на Type1?
Если это будет ссылка, то как избежать появления ссылки, сделать MyType2 независимым источником?
qadeveloper2 (2007-09-21 08:52:00) [1]По поводу класса, не понял: что лучше сделать класс под хранение этой информации?
qadeveloper2 (2007-09-21 08:34:00) [2]Спасибо. Т.е. все же получается, что единственный способ сделать отдельную копию - это вручную?
Может и бред, а если запись объявить, как packed а потом сделать move для массива?
Anatoly Podgoretsky (2007-09-20 23:03:00) [3]
> Что происходит при последнем присваивании: копируется Type1
> в Type2, или у Type2 будет просто ссылаться на Type1?
Копируется ссылка и увеличивается счетчик.
Для создания копии надо вручную копировать данные из структуры.
Подумай над [1]
homm (2007-09-20 22:57:00) [4]В общем тебе классы нужны, с полной обработкой создания и уничтожения, и перекрытием Assign.
> var
> MyType1: TMyArrays;
> MyType2: TMyArrays;
Кстати, здесь ты наверное имел ввиду
var
MyType1: TMyType;
MyType2: TMyTypes;
homm (2007-09-20 22:56:00) [5]вызывается @DunArrayAsg, а в нем, судя по количеству выплненых инструкций, копирование ссылки.