Free Pascal. Függvénnyell szeretnék megoldani egy feladatot, aminek az értéke vagy byte, vagy real lesz, amit még előre nem tudok, mert az alprogramban az ifben dől el, hogy melyik tipusu lesz az eredmény?
"az alprogramban az ifben dől el"
Mármint a függvényedben, vagy még a hívás előtt?
Amikor a függvényt meghívod, akkor utána már nem lehet változtatni, egyféle értékkel tér vissza. Ha hívás előtt tudod, hogy milyen típus kell, akkor a függvény-túlterheléssel (overload) lehet játszani.
(Bár a paraméterlistában különbözniük kell a függvényeknek, nem elég, ha csak a visszatérési érték más, ha jól tudom.)
Esetleg áthidaló megoldásként olyat tudsz csinálni, hogy a függvény cím szerint vesz át egy real és egy byte paramétert, és a vizsgálat után az egyikbe beírja az eredményt. A visszatérési érték lehet az, hogy melyikkbe rakta, tehát milyen típust ad vissza ilyen módon.
Pl:
Function ByteOrReal(var r : real; var b : byte) : Boolean;
begin
{ha byte kell:}
b := 1;
ByteOrReal := true;
{ha real kell:}
r := 1.0;
ByteOrReal := false;
end;
begin
var bt : byte, re : real;
if ByteOrReal(re,bt) then
{bt-ben van a byte érték}
else
{re-ben van a real érték}
end.
(Nem valódi kód, csak egy váz.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!