Главная страница
    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
2-1318992459
Gu
2011-10-19 06:47
2012.01.29
добавить время


2-1319363512
Nucer
2011-10-23 13:51
2012.01.29
Список записей с быстрым поиском по ключу int64


2-1318669158
Тима12
2011-10-15 12:59
2012.01.29
Отладка программы


2-1319387079
Анна
2011-10-23 20:24
2012.01.29
срочна нужна помощь в написании прогррамм...


2-1318866159
Gu
2011-10-17 19:42
2012.01.29
Установка VersionInfo





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