Вниз
Скачать: CL | DM;

перегрузка   Найти похожие ветки 

← →
Minog   (2003-03-26 13:11) [0]

Что такое перегрузка(overloading) и зачем она нужна?


← →
MBo ©   (2003-03-26 13:21) [1]

может быть несколько процедур или функций с одинаковым именем, но разным списком параметров, если они описаны с модификатором overload.

function ConvertToString(Value:Integer):String;overload;
function ConvertToString(Value:Double):String;overload;

компилятор по типу параметров разбирается, вызовкакой именно функции подставить

var i:integer;
s:=ConvertToString(i);
используется первая функция


← →
malkolinge ©   (2003-03-26 18:05) [2]

Кстати есть еще и неправильная перегрузка
Например :
function ConvertToString(Value:Integer):String;overload;
function ConvertToString(Value:byte):String;overload;
Компилятор не сможет узнать какую функцию вызвать при вызове , например
ConvertToString(3)




← →
Anatoly Podgoretsky ©   (2003-03-26 18:10) [3]

Задача программиста не допускать одназначности - ConvertToString(Byte(3)), но ты уверен, что будет проблема?


← →
malkolinge ©   (2003-03-26 18:19) [4]

Щас попробу......Пробую
Код
procedure TForm1.Button1Click(Sender: TObject);

function F(g:Integer):String;overload;
begin
Result:="Integer";
end;
function F(g:byte):String;overload;
begin
Result:="byte"
end;

begin
Showmessage(F(567));
end;


При вызове F c параметром до 255 выводиться byte дальше для Integer.

Т.е повод для флейма, может это хорошо а может и нет, с одной стороный мы знаем, что вызовется а другой вроде как нет
F(Round(Sqr(32)-size+param*5 )) - ^)))))



← →
Anatoly Podgoretsky ©   (2003-03-26 18:23) [5]

Отсюда вывод, что это от лукавого, требуется осмотрительность, а если модуль чужой и плохо документирован.


← →
malkolinge ©   (2003-03-26 18:28) [6]

В общем насколько я помню, правила хорошего тона говорят о том, что так делать нельзя



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

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



Память: 0.46 MB
Время: 0.017 c
1-19518
AlexeyMir
2003-03-26 14:30
2003.04.07
Проблемы с PChar


1-19575
апельсин==
2003-03-26 11:43
2003.04.07
как разархивировать файл из Rar-a???


14-19859
alxx
2003-03-21 17:23
2003.04.07
:)


14-19819
Deonis_L
2003-03-20 12:17
2003.04.07
Как включить скаченный компонент в Delphi?


14-19777
panov
2003-03-17 02:10
2003.04.07
уф... заканчивается подготовка к отъезду...




   Наверх