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

Вниз

const   Найти похожие ветки 

 
vasa777   (2012-06-11 22:33) [0]

в чем отличие процедур с одинаковым телом
procedure My(x:integer);
от
procedure My(const x:integer);
ведь const по умолчанию подразумевается (если его не пишем) какбы если var нету?


 
Ega23 ©   (2012-06-11 22:40) [1]

Экзамен?


 
vasa777   (2012-06-11 22:45) [2]

нет, просто интересно. смотрю вот стронние компоненты с исходниками - в некоторых во всех юнитах так процедуры описаны а в некоторых нет. ето просто для красоты чтения кода?


 
Давайте будем жрать!   (2012-06-11 22:51) [3]

Если в теле первой ты напишешь x := 1, всё будет в порядке. Во втором случае получишь ошибку компиляции.


> const по умолчанию подразумевается
Const менять нельзя. Без спецификатором — менять можно, но после завершения процедуры значение останется прежним. Var — менять можно, и после завершения процедуры значение параметра будет изменено. Н пальцах вот так.

А вообще почитай, что такое передача параметра по ссылке и передача параметра по значению.


 
Inovet ©   (2012-06-11 22:56) [4]

Вместо Integer может быть что-то содержащее указатели, через которые можно без const менять ещё что-то.


 
Давайте будем жрать!   (2012-06-11 23:04) [5]


> Inovet ©   (11.06.12 22:56) [4]
Будто бы конст помешает менять то, на что указатели указывают...


 
Inovet ©   (2012-06-11 23:27) [6]

> [5] Давайте будем жрать!   (11.06.12 23:04)
> Будто бы конст помешает менять то, на что указатели указывают...

Усложнит


 
Германн ©   (2012-06-12 01:43) [7]


> Давайте будем жрать!   (11.06.12 23:04) [5]
>
>
> > Inovet ©   (11.06.12 22:56) [4]
> Будто бы конст помешает менять то, на что указатели указывают.
> ..
>

Будто бы const помешает изменить "обходным" способом и простой тип. Но там ССЗБ.
Но для RAD-продукта вполне хороший "дополнительный" классификатор переменной функции.


 
Давайте будем жрать!   (2012-06-12 07:46) [8]


> Inovet ©   (11.06.12 23:27) [6]
Как?! procedure Proc(P: PInteger) и procedure Proc(const P: PInteger) одинаково позволяют писа́ть в P^. Или ты имел в виду что-то другое, а я не понял.


 
Anatoly Podgoretsky ©   (2012-06-12 08:41) [9]

> Давайте будем жрать!  (12.06.2012 07:46:08)  [8]

CONST защищает только P


 
Давайте будем жрать!   (2012-06-12 09:28) [10]


> Anatoly Podgoretsky ©   (12.06.12 08:41) [9]
Я знаю. Я хочу понять, что утверждается в [4].


 
Anatoly Podgoretsky ©   (2012-06-12 09:45) [11]

То что написано, через указатель можно менять данные, даже при передачи по значению


 
Inovet ©   (2012-06-12 14:19) [12]

> [10] Давайте будем жрать!   (12.06.12 09:28)
> Я хочу понять, что утверждается в [4]

Ну коряво написал.


 
Sha ©   (2012-06-13 00:53) [13]

> Anatoly Podgoretsky ©   (12.06.12 09:45) [11]
> То что написано, через указатель можно менять данные,
> даже при передачи по значению

Ну, это вряд ли. Скорее другое поменяется.


 
Sha ©   (2012-06-13 00:55) [14]

Такое изменение наружу не вылезет:
procedure foo(const i: integer);
begin;
 pInteger(@i)^:=i+1;
 end;



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

Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.065 c
15-1328657511
Забаненный
2012-02-08 03:31
2013.03.22
Корень зла.


2-1337760388
yuiyui
2012-05-23 12:06
2013.03.22
ctrl + i не работает


8-1227539352
sh1k4r1
2008-11-24 18:09
2013.03.22
Подкинули задачку


2-1335171988
andrewtitoff
2012-04-23 13:06
2013.03.22
IdHTTP и Proxy


15-1334149857
AV
2012-04-11 17:10
2013.03.22
Как отменить умный поиск AdobeReader(v8.1.2)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский