Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ООП


GanibalLector ©   (2005-01-23 19:04:00) 

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

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


и так :

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


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


jack128   (2005-01-24 03:09:00) [1]

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

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

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


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

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


GuAV   (2005-01-24 02:47:00) [3]

jack128 ©   (24.01.05 2:38) [9]

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


jack128   (2005-01-24 02:38:00) [4]

Юрий Зотов ©   (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 поле :-)


GanibalLector   (2005-01-24 01:55:00) [5]

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


GuAV   (2005-01-24 01:47:00) [6]

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:13:00) [7]

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


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

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

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


jack128   (2005-01-23 19:27:00) [9]

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]
А вот,даже вопрос задал.Неужели нельзя было добавить одно словечко

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


GanibalLector   (2005-01-23 19:19:00) [10]

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


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

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

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

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


GanibalLector   (2005-01-23 19:06:00) [12]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо