Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

ООП   Найти похожие ветки 

 
GanibalLector ©   (2005-01-23 19:04) [0]

Вот,какое дело.Не могу понять,почему описывают класс так :

TObject = class
   constructor Create;
   ...
   destructor Destroy; virtual;
 end;


и так :

TDockZone = class
 private
 ...
 public
  ...
 end;


Т.е. в первом случае нет  private,public и пр. Почему?


 
GanibalLector ©   (2005-01-23 19:06) [1]

В догонку...если нет private,public то это по умолчанию public?
Али как?


 
Юрий Зотов ©   (2005-01-23 19:12) [2]

> GanibalLector ©   (23.01.05 19:06) [1]

Если класс откомпилирован с опцией {$M+} (в VCL это TPersistent), либо является потомком такого класса, то дефолтная секция - это published. Иначе - public.

У интерфейсов другое правило. У них все - public.


 
GanibalLector ©   (2005-01-23 19:19) [3]

2 Юрий Зотов ©   (23.01.05 19:12) [2]
А на кой так делать?Ведь это ж только усложняет понимание,млин...
Я вот,даже вопрос задал.Неужели нельзя было добавить одно словечко.


 
jack128 ©   (2005-01-23 19:27) [4]

GanibalLector ©   (23.01.05 19:19) [3]
А на кой так делать?Ведь это ж только усложняет понимание,млин...

гм.. Ну тут просто некотороя неопределённость, что считать Published свойствами/методами..

Например
{$M-}
TSameObj = class
published
 SameField: TSameOtherObj;
end;
{$M+} SameField - это published свойство??

GanibalLector ©   (23.01.05 19:19) [3]
А вот,даже вопрос задал.Неужели нельзя было добавить одно словечко

А зачем? Может лудше изучить язык программирования на котором пишешь? ;-)


 
Юрий Зотов ©   (2005-01-23 19:35) [5]

> jack128 ©   (23.01.05 19:27) [4]
> SameField - это published свойство?
Это поле, а не свойство. Но неопределенности никакой нет. Если секция указана явно, то она и действует; если нет - работают правила дефолта.

> GanibalLector ©   (23.01.05 19:19) [3]
> А на кой так делать?Ведь это ж только усложняет понимание
Тем, кому это уже надо - не усложняет. А тем, кому этого еще не надо - упрощает. Потому что не требует слова published перед обработчиками событий в формах.


 
GanibalLector ©   (2005-01-24 01:13) [6]

> Может лудше изучить язык программирования на котором пишешь?
Да,но где взять литературу в которой описаны такие приколы?Я,пока,не встречал такой.


 
GuAV ©   (2005-01-24 01:47) [7]

2 GanibalLector ©  [6]

F1 проходит ?

Public + F1 -> Visibility of class members:
If a member"s declaration appears without its own visibility specifier, the member has the same visibility as the one that precedes it. Members at the beginning of a class declaration that don"t have a specified visibility are by default published, provided the class is compiled in the {$M+} state or is derived from a class compiled in the {$M+} state; otherwise, such members are public.


 
GanibalLector ©   (2005-01-24 01:55) [8]

2 GuAV  [7]
Во,мля,дела...
З.Ы.Аж стыдно стало.


 
jack128 ©   (2005-01-24 02:38) [9]

Юрий Зотов ©   (23.01.05 19:35) [5]
Это поле, а не свойство
описался я, конечно...

GuAV ©   (24.01.05 1:47) [7]
Ну а вот еще в help"е написано
A class cannot have published members unless it is compiled in the {$M+} state or descends from a class compiled in the {$M+} state
Значит [4] - не published поле :-)


 
GuAV ©   (2005-01-24 02:47) [10]

jack128 ©   (24.01.05 2:38) [9]

При чём тут я ? Я никогда не говорил, что [4] - published поле. :-)
Впрочем {$M-} значит без RTTI, а чем ещё отличаются public от published кроме наличия в RTTI и следующих из этого отличий ? :-)


 
GuAV ©   (2005-01-24 03:00) [11]

Попробовал код [4]. Оказывается SameField может быть только типа объект или интерфейс. Т.е. вроде как поле published... но RTTI нет... короче, jack128 ©, не пиши так !!! ;-)


 
jack128 ©   (2005-01-24 03:09) [12]

GuAV ©   (24.01.05 2:47) [10]
а чем ещё отличаются public от published кроме наличия в RTTI и следующих из этого отличий ?

Хе вот и я о  том же :-)
GuAV ©   (24.01.05 3:00) [11]
не пиши так !!! ;-)

Да я вобщем то и не пишу :-)



Страницы: 1 вся ветка

Текущий архив: 2005.02.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
14-1105790085
DSKalugin
2005-01-15 14:54
2005.02.06
Где можно стырить список городов Украины?


1-1106648348
Aleks
2005-01-25 13:19
2005.02.06
Как перехватить ошибку


1-1106307685
slaga
2005-01-21 14:41
2005.02.06
Анализ работы программы ?


3-1105347168
Orc
2005-01-10 11:52
2005.02.06
Список серверов SQL в сети


9-1098510386
Lokomen
2004-10-23 09:46
2005.02.06
Квест