Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ ООП : Private, Public

Автор: klem4 21.08.2006 21:59

Не могу понять одну вещь. Есть некоторый объект :

TObj = object
private
privateVar : integer;
end;


Если описание этого обекта я например запихну в модуль ObjUnit и в программе

uses ObjUnit;

var
Obj : TObj;

begin
Obj.privateVar := 5;
end.


При попытке таким образом работать с переменной privateVar мне вежливо сообщит компилятор, что это невозможно, но при описании типа непосредственно в программе все будет отлично :

type
TObj = object
private
privateVar : integer;
end;
var
Obj : TObj;

begin
Obj.privateVar := 5;
end.


Почему ?

Автор: volvo 21.08.2006 22:08

Цитата(klem4 @ 21.08.2006 17:59)
Почему ?

Потому, что в Паскале директивы Private/Public работают на уровне модулей.

Автор: klem4 21.08.2006 22:10

Спасибо wink.gif