Спецификаторы доступа к полям класса | |
type T = object private X: integer; end; var obj: T; begin obj.X := 10; { <--- Здесь ... } writeln(obj.X); { <--- ... или вот тут } end.внешний код не получит доступа к "частному" полю X... Доступ получен, и приведенная выше программа прекрасно работает. А вот если вынести описание типа T в отдельный модуль, и попытаться из другого модуля обратиться к T.X, то произойдет ошибка.
type T = object X, Y: integer; ... end;
type T = object private X, Y: integer; public procedure SetX(value: integer); procedure SetY(value: integer); function GetX: integer; function GetY: integer; ... end;(для Турбо Паскаля)
type T = object private _X, _Y: integer; procedure PutX(value: integer); procedure PutY(value: integer); public property X: integer read _X write PutX; property Y: integer read _Y write PutY; end;(для FPC)