Вниз
Скачать: 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.011 c
6-19738
Valery
2003-02-06 06:54
2003.04.07
Как среагировать на сообщением пришедшее на модем ?


1-19522
kat
2003-03-26 11:09
2003.04.07
Отчет в QuickRep в ширину на 2-х страницах


4-19927
Style
2003-02-09 00:06
2003.04.07
Хочу HWND Desktopa!


3-19468
Vanysha
2003-03-17 19:03
2003.04.07
Сохранение содержимого OLE container в файле


3-19452
БАА
2003-03-15 17:50
2003.04.07
Выборка единственной строки из многих....




   Наверх