Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.07;
Скачать: 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 вся ветка

Текущий архив: 2003.04.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
6-19734
ctapik-net
2003-02-16 12:30
2003.04.07
Управление WebBrowser ом из программы с помощью скрипта


1-19600
DVM
2003-03-28 18:11
2003.04.07
Помогите перевести строчку с C на Pascal.


1-19619
Opera
2003-03-25 12:33
2003.04.07
Прилипание


3-19479
dmi-vancev
2003-03-16 01:19
2003.04.07
IBase


3-19507
off
2003-03-20 08:20
2003.04.07
Как реализовать на уровне SQL?