Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.039 c
14-1105711465
VID
2005-01-14 17:04
2005.02.06
Как отключить автоматический горизонтальный скроллинг в TreeView


14-1105860340
Девушка
2005-01-16 10:25
2005.02.06
Вычисление ip-ка, браузера...


3-1104973733
Ghost_
2005-01-06 04:08
2005.02.06
генератор отчетов


1-1106278856
Ната
2005-01-21 06:40
2005.02.06
Как динамически создать кнопку?


3-1104824144
tytus
2005-01-04 10:35
2005.02.06
Фильтрация данных.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский