![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как правильно описать функцию с разными выходами? [D6, XP]
novai © (2011-02-11 18:18:00)как правильно описать функцию? хочу так:
function WhatButtonOn(AX, AY: integer): string;
function WhatButtonOn(AX, AY: integer): integer;
не получается, пока сделал так:
function WhatButtonOn(AX, AY: integer): string; overload;
function WhatButtonOn(AX, AY: Smallint): Smallint; overload;
но не думаю, что это правильно, как правильно, или это не возможно?
sniknik (2011-02-11 18:44:00) [21]> такая перегрузка могла бы стать фишкой паскаля :)
с довеском в виде источника багов... т.к. добавляет неоднозначность.
Palladin (2011-02-11 18:44:00) [22]ну прежде чем на форум лезть неплохо было бы почитать справку по overload, не так ли? ведь только эта директива позволяет объявлять одноименные функции/процедуры/методы
sniknik (2011-02-11 18:43:00) [23]> функцией нельзя?
можно, разрешаю... хотя я не Palladin :(.
function WhatButtonOn(AX, AY: integer; const r: String): String; overload;
function WhatButtonOn(AX, AY: integer; r: integer): integer; overload;
novai (2011-02-11 18:42:00) [24]
> Тебе справку процитировать
а что там именно? не понял о чем Вы?
И. Павел (2011-02-11 18:40:00) [25]
> не может входить в ее сигнатуру.
А жаль. Из за жесткой типизация такая перегрузка могла бы стать фишкой паскаля :)
Palladin (2011-02-11 18:39:00) [26]Тебе справку процитировать или сам в нее посмотришь?
И. Павел (2011-02-11 18:39:00) [27]
> думал компилятор сам решит когда что:
Компилятор принимает такие решения на основе сигнатуры функции (это ее имя, типы передаваемых параметров и т.д.). Оператор "=", который к функции даже не относится, не может входить в ее сигнатуру.
novai (2011-02-11 18:28:00) [28]Палладин, значит функцией нельзя?
novai (2011-02-11 18:27:00) [29]думал компилятор сам решит когда что:
if WhatButtonOn(AX, AY: integer): = 'блабла' then
или
if WhatButtonOn(AX, AY: integer): = 1 then
Palladin (2011-02-11 18:24:00) [30]procedure WhatButtonOn(AX, AY: integer; var r: String); overload;
procedure WhatButtonOn(AX, AY: integer; var r: integer); overload;
И. Павел (2011-02-11 18:20:00) [31]А как вы собираетесь потом вызывать две одноименные функции с одинаковыми параметрами? :)