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

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

Объявление процедур [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]

тем, что первые - это методы класса, а вторые - просто процедуры и функции


Наверх

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