Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как правильно описать функцию с разными выходами? [D6, XP]


Страницы:   1 2

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]

А как вы собираетесь потом вызывать две одноименные функции с одинаковыми параметрами? :)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо