Форум: "Основная";
Текущий архив: 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