Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Объявление процедур   Найти похожие ветки 

 
Dush   (2004-11-26 15:42) [0]

Доброго времени суток!
Чем отличается объявление глобальной процедуры/функции (в разделах private/public) от объявления внутри процедуры/функции:

Procedure Proc1;
 Procedure Proc2;
 begin
 end;
begin
end;


 
Reindeer Moss Eater ©   (2004-11-26 15:45) [1]

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


 
TUser ©   (2004-11-26 15:46) [2]

1. Тем, что к глобальной процедере имеет доступ кто угодно, а к локальной можно обратиться только из той процедуры, для которой она локальная. Ну, не кто угодно - это я слегка загнул, конечно
2. Тем, что локальная процедура имеет доступ ко всем переменным процедуры более высокого уровня (и еще более высокого и т.д.), если они не перекрыты ее локальными переменными (кроме использования для цикла for).
3. Некоторые считают, что объявление процедуры внутри другой процедуцры снижает читабельность кода. Мое лючное мнение - не снижает, если не доводить это дело до абсурда.


 
begin...end ©   (2004-11-26 15:47) [3]


> Dush   (26.11.04 15:42)


> Чем отличается объявление глобальной процедуры/функции (в
> разделах private/public)

Что Вы понимаете под глобальной процедурой/функцией?

> от объявления внутри процедуры/функции:

Proc2 не будет видна за пределами Proc1.


 
TUser ©   (2004-11-26 15:47) [4]

Извини, не заметил про private/public.


 
Dush   (2004-11-26 15:57) [5]

а скорость вызова и работы обоих вариантов одинакова?


 
Digitman ©   (2004-11-26 16:07) [6]


> Dush   (26.11.04 15:57) [5]
> а скорость вызова и работы обоих вариантов одинакова?


считай что различий нет.
область видимости чего-о там - гораздо более важный фактор.


 
Anatoly Podgoretsky ©   (2004-11-26 16:13) [7]

Dush   (26.11.04 15:57) [5]
Нет смысла сравнивать скорость, для метода и отдельной процедуры.


 
Ken   (2004-11-26 16:13) [8]


> (в разделах private/public)

если private, то твоя процедура видна только внутри класса
если public, то видна и за пределами класса тоже.

Ето косаеться не только процедур, а всего что можно обьявить (методы, свойства, поля, события .......)


 
Digitman ©   (2004-11-26 16:32) [9]


> Ken   (26.11.04 16:13) [8]


ну ведь галиматью же городишь ! и человека с панталыку сбиваешь !

спецификаторы областей видимости "pivate!", "protected", "public", "published" применимы и имеют смысл ТОЛЬКО в контексте декларации КЛАССА.
А в этом контексте нет и быть не может речи о традиционных для процедурного прогр-я "процедурах" и "функциях" : речь в этом контексте идет о МЕТОДАХ класса ! А то что методы м.б. процедурными или функциональными - иной вопрос.



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.085 c
1-1101423144
Rand
2004-11-26 01:52
2004.12.12
Необязательные параметры


4-1098977063
tchn
2004-10-28 19:24
2004.12.12
максимизация окна и системные сообщения


6-1091808188
2тэ10м
2004-08-06 20:03
2004.12.12
Трафик


14-1101281847
dr Tr0jan
2004-11-24 10:37
2004.12.12
HASP NT, Не могу установить сабж


1-1101401049
Руслана
2004-11-25 19:44
2004.12.12
Почему BlockWrite(SaveFile, D, 4) вызывает предупреждение