Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.052 c
3-1100166567
Автор333
2004-11-11 12:49
2004.12.12
Сложение столбца!


1-1101368240
markers
2004-11-25 10:37
2004.12.12
Работа с чексбоксами....


11-1083849539
Delphi5.01
2004-05-06 17:18
2004.12.12
... как вызвать функцию paint предка ...


6-1096747272
denkop
2004-10-03 00:01
2004.12.12
Передача структуры которая содержит поле типа pointer


14-1100903958
123
2004-11-20 01:39
2004.12.12
C#





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский