Показать сообщение отдельно
Старый 01.02.2012, 17:32   #5
AVL
Разработчик
 
Регистрация: 27.01.2011
Адрес: Афипский
Сообщений: 419
Написано 100 полезных сообщений
(для 182 пользователей)
Ответ: Массив записей = массив указателей?

Сообщение от ViNT Посмотреть сообщение
как я понимаю, экземпляр класса содержит в себе указатель на данные в памяти, и копируя экземпляр мы копируем и этот адрес.
Такое наблюдается только при работе с массивом:

program NewProject;
type r1=record
  n:integer;
end;

var
  a1,a2:r1;
  i:integer;

begin
  a1.n:=1;
  a2:=a1;
  a1.n:=2;
  drawtext(''+a2.n,0,0);
  repaint;
  delay(1000);
end.
Результат - 1.

И при пересылке из одного массива в другой тоже указатель копируется:
program NewProject;
type r1=record
  n:integer;
end;

var
  a1,a2: array[1..10] of r1;
  i:integer;

begin
  a1[1].n:=1;
  a2[1]:=a1[1];
  a1[1].n:=2;
  drawtext(''+a2[1].n,0,0);
  repaint;
  delay(1000);
end.
Результат - 2.
(Offline)
 
Ответить с цитированием