![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объявление процедур [D6]
Dush © (2004-11-26 15:42:00)Доброго времени суток!
Чем отличается объявление глобальной процедуры/функции (в разделах private/public) от объявления внутри процедуры/функции:
Procedure Proc1;
Procedure Proc2;
begin
end;
begin
end;
Digitman (2004-11-26 16:32:00) [1]
> Ken (26.11.04 16:13) [8]
ну ведь галиматью же городишь ! и человека с панталыку сбиваешь !
спецификаторы областей видимости "pivate!", "protected", "public", "published" применимы и имеют смысл ТОЛЬКО в контексте декларации КЛАССА.
А в этом контексте нет и быть не может речи о традиционных для процедурного прогр-я "процедурах" и "функциях" : речь в этом контексте идет о МЕТОДАХ класса ! А то что методы м.б. процедурными или функциональными - иной вопрос.
Anatoly Podgoretsky (2004-11-26 16:13:00) [2]Dush (26.11.04 15:57) [5]
Нет смысла сравнивать скорость, для метода и отдельной процедуры.
Ken (2004-11-26 16:13:00) [3]
> (в разделах private/public)
если private, то твоя процедура видна только внутри класса
если public, то видна и за пределами класса тоже.
Ето косаеться не только процедур, а всего что можно обьявить (методы, свойства, поля, события .......)
Digitman (2004-11-26 16:07:00) [4]
> Dush (26.11.04 15:57) [5]
> а скорость вызова и работы обоих вариантов одинакова?
считай что различий нет.
область видимости чего-о там - гораздо более важный фактор.
Dush (2004-11-26 15:57:00) [5]а скорость вызова и работы обоих вариантов одинакова?
begin...end (2004-11-26 15:47:00) [6]
> Dush (26.11.04 15:42)
> Чем отличается объявление глобальной процедуры/функции (в
> разделах private/public)
Что Вы понимаете под глобальной процедурой/функцией?
> от объявления внутри процедуры/функции:
Proc2 не будет видна за пределами Proc1.
TUser (2004-11-26 15:47:00) [7]Извини, не заметил про private/public.
TUser (2004-11-26 15:46:00) [8]1. Тем, что к глобальной процедере имеет доступ кто угодно, а к локальной можно обратиться только из той процедуры, для которой она локальная. Ну, не кто угодно - это я слегка загнул, конечно
2. Тем, что локальная процедура имеет доступ ко всем переменным процедуры более высокого уровня (и еще более высокого и т.д.), если они не перекрыты ее локальными переменными (кроме использования для цикла for).
3. Некоторые считают, что объявление процедуры внутри другой процедуцры снижает читабельность кода. Мое лючное мнение - не снижает, если не доводить это дело до абсурда.
Reindeer Moss Eater (2004-11-26 15:45:00) [9]тем, что первые - это методы класса, а вторые - просто процедуры и функции