Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.29;
Скачать: CL | DM;

Вниз

[Pascal Error] E2250 There is no overloaded version of <function>   Найти похожие ветки 

 
Cobalt ©   (2011-10-19 11:27) [0]

[Pascal Error] E2250 There is no overloaded version of <function> that can be called with these arguments

Есть две одноименные функции (overloaded), с одинаковыми аргументами, возвращающие string и double
Хочу присвоить переменной типа Variant результат, возвращаемый функцией. Как указать, какую из используемых функций брать?
function MyFunc(S: string): string; overloaded;
function MyFunc(S: string): Double; overloaded;
...

var
 V: Variant;
begin
 V := MyFunc("param-pam-pam");



 
Медвежонок Пятачок ©   (2011-10-19 11:33) [1]

для начала не овелоадед, а оверлоад.
ну и потом перегруженные функции должны отличаться количеством параметров


 
Cobalt ©   (2011-10-19 11:35) [2]

Упс, ошибочка вышла, не туда посмотрел :-)


 
Медвежонок Пятачок ©   (2011-10-19 11:37) [3]

function MyFunc(S: string): variant;
//function MyFunc(S: string): Double; overloaded;


 
Anatoly Podgoretsky ©   (2011-10-19 12:57) [4]

Странно, что не обругали еще на стадии объявления. Ведь тут явная неодназначность, какую функцию использовать.

И еще в какой версии Дельфи появилась директива overloaded?


 
И. Павел ©   (2011-10-19 13:03) [5]

> [0] Cobalt ©   (19.10.11 11:27)

Так делать нельзя. Перегруженные функции не могут иметь одинаковые сигнатуры. Возвращаемое значение может вообще не использоваться, что вызывать тогда?


 
Плохиш ©   (2011-10-19 13:17) [6]


> Есть две одноименные функции (overloaded), с одинаковыми
> аргументами, возвращающие string и double

В языке Делфи такое не допускается.


 
jack128_   (2011-10-19 14:14) [7]

V := Unit1.MyFunc("dw");
V := Unit2.MyFunc("dw");


 
И. Павел ©   (2011-10-20 14:59) [8]

> [7] jack128_   (19.10.11 14:14)

Обычно перегружаемые функции имеет смысл перегружать как раз только для того, чтобы они вызывались по одному имени и после смены типа переменной-аргумента код менять бы не пришлось:

calc(inta)
calc(floatb)
calc(arrayc)


Если из-за разных аргументов придется менять область видимости - ИМХО, это уже не то.



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

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

Наверх




Память: 0.48 MB
Время: 0.006 c
15-1317933002
Юрий
2011-10-07 00:30
2012.01.29
С днем рождения ! 7 октября 2011 пятница


1-1282814003
RG
2010-08-26 13:13
2012.01.29
как в сообщение(ShowMessage) вставить список свозможнотью выбора


2-1319357230
pushok
2011-10-23 12:07
2012.01.29
Проблема с реестром в windows 7


3-1270538121
kudatsky
2010-04-06 11:15
2012.01.29
Оцените эффективность запроса в FireBird


2-1318406398
Laguna
2011-10-12 11:59
2012.01.29
Не воспринимается путь к файлу кирилицей