Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: -0.977 c
1-1101891456
Victor!
2004-12-01 11:57
2004.12.12
Инсталлятор BDE


3-1100521367
VadimK
2004-11-15 15:22
2004.12.12
Создание Cursor в ХП, через компоненты DBExpress


3-1100513470
Dik
2004-11-15 13:11
2004.12.12
Результат изменения запроса в ХП


1-1101861730
Дмитрий В. Белькевич
2004-12-01 03:42
2004.12.12
компоненту хитрую ищу


3-1100430358
M. Saratoff
2004-11-14 14:05
2004.12.12
Реализация операции пересечения




   Наверх