OVERLOAD

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » O » OVERLOAD

Syntax: DECLARE { SUB | FUNCTION } Funktionsname OVERLOAD (Parameterliste) [ AS Typ ]
Typ: Klausel
Kategorie: Deklaration

Mit der Klausel OVERLOAD können Sie Prozeduren mit unterschiedlicher Parameterliste, aber gleichem Prozedurnamen deklarieren, ohne die Fehlermeldung "Symbol already defined" zu erhalten. Sobald die Prozedur zum ersten Mal deklariert wird, muss OVERLOAD angegeben werden; die folgenden Deklarationen müssen die OVERLOAD-Klausel nicht tragen, auch wenn es keinen Fehler ausgibt, wenn sie angegeben wird.

Funktionen, die in UDTs deklariert sind, müssen die OVERLOAD-Klausel nicht erhalten, da innerhalb des UDTs standardmäßig alle Funktionen überladen sind.

Eine überladene Funktion muss sich durch mindestens einen Übergabeparameter von den anderen unterscheiden.

Beispiel:

DECLARE FUNCTION SUM OVERLOAD (a AS INTEGER, b AS INTEGER) AS INTEGER
DECLARE FUNCTION SUM          (a AS SINGLE, b AS SINGLE)  AS SINGLE

FUNCTION SUM  (a AS INTEGER, b AS INTEGER) AS INTEGER
   FUNCTION = a + b
END FUNCTION

FUNCTION SUM  (a AS SINGLE, b AS SINGLE) AS SINGLE
   FUNCTION = a + b
END FUNCTION

DIM AS INTEGER a , b
DIM AS SINGLE  a1, b1
a = 2
b = 3
a1 = 2.0
b1 = 3.0
PRINT SUM (a , b )
PRINT SUM (a1, b1)
SLEEP

Unterschiede zu QB: neu in FreeBASIC

Siehe auch:
DECLARE, FUNCTION, SUB, Prozeduren