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

Вниз

[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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
15-1318409914
Псарь
2011-10-12 12:58
2012.01.29
Нужен исходник AS3...


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


4-1254333344
EPaul
2009-09-30 21:55
2012.01.29
Как запустить программу пользователем SYSTEM


15-1318241847
Demo
2011-10-10 14:17
2012.01.29
ПО для терминалов


15-1318097571
Born Loser
2011-10-08 22:12
2012.01.29
Как передать данные из драйвера





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