| Спецификаторы доступа к полям класса | |
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)