6.2.1 Обячные поля/переменные

На верх  Назад  Вперёд

Есть два способа объявить нормальное поле. Первый из них является классическим способом, аналогично определению объекта:

{$mode objfpc}

type

cl=class

  l : longint;

end;

var

cl1,cl2 : cl;

begin

cl1:=cl.create;

cl2:=cl.create;

cl1.l:=2;

writeln(cl1.l);

writeln(cl2.l);

end.

вывод будет иметь следующий вид

2

0

Пример показывает, что значения полей инициализируются нулём (или эквивалентом нуля для не порядковых (ordinal) типов: пустая строка, пустой массив и так далее).

Второй способ объявить поле (доступно только в более поздних версиях Free Pascal) использует блок var:

{$mode objfpc}

type

cl=class

var

  l : longint;

end;

Он полностью эквивалентен предыдущему определение.

Примечание:

В версии компилятора 3.0, компилятор может изменить порядок полей в памяти, если это приводит к большей согласованности мелких объектов. Это означает, что в некоторые, поля не обязательно появляться в том же порядке, как и в объявлении. RTTI сгенерированный для класса будет отражать это изменение.