Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Überladen von Prozeduren und Operatoren (Overload)

von RedakteurMODSeite 2 von 9

BefehlsreferenzeintragOverLoad hat aber auch einen kleinen Nachteil. Diesen möchte ich mal anhand einer Funktion aufzeigen, die einen zufälligen Wert eines bestimmten Datentyps zurückgeben soll:

Declare Function gibZahl OverLoad As Integer
Declare Function gibZahl As Double

'Zufallsgenerator initialisieren
Randomize Timer

Print gibZahl

Sleep

Function gibZahl As Integer
    Return Int(Rnd * 1000)
End Function

Function gibZahl As Double
    Return Rnd * 1000
End Function

Der Code wird aufgrund des Compilerfehlers, "Duplicated definition", einer mehrfachen Definition der Funktion 'gibZahl' nicht compilieren.
Grund dafür ist, dass eine überladene Funktion mindestens einen Übergabeparameter haben muss, der ihn von den anderen Funktionen unterscheidet.

Declare Function gibZahl OverLoad (x As Integer) As Integer
Declare Function gibZahl (x As Double) As Double

'Zufallsgenerator initialisieren
Randomize Timer

'Übergabe eines unnötigen "Pseudo-Parameters"
Print gibZahl(0.0)

Sleep

Function gibZahl (x As Integer) As Integer
    Return Int(Rnd * 1000)
End Function

Function gibZahl (x As Double) As Double
    Return Rnd * 1000
End Function

Dieser Code dagegen compiliert problemlos, da sich ja ein Parameter unterscheidet, auch wenn es nicht besonders schön gelöst ist.

Hinweis:
- wenn eine Funktion einen Parameter hat und die zweite keinen, ist das auch ein erlaubtes Konstrukt
- wenn eine Funktion mehr als einen Parameter hat, muss sich trotzdem nur ein Parameter unterscheiden

 

Gehe zu Seite Gehe zu Seite  1  2  3  4  5  6  7  8  9  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 03.06.2010 von RedakteurMOD angelegt.
  • Die aktuellste Version wurde am 23.11.2013 von RedakteurMOD gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen