Zum Inhalt springen

Type-Zeiger

Aus Wikibooks

Navigation: BlitzBasic >>> Blitz2D >>> Inhaltsübersicht >>> Types

Bei Konstanten und Variablen, sowie bei der Definition von Funktionen wurde erklärt, dass es in BlitzBasic vier Datentypen gibt, deren Symbol hinter dem Identifer eine Variable oder Konstante an die Verwendung mit dem entsprechenden Datantyp bindet, jedoch wurden dort nur die drei Datentypen Ganzzahlen(Int), Kommazahlen(Float) und Zeichenketten(String) erklärt. Zur Beschreibung des vierten Datentyps kommt diese Seite: Variablen können als Type-Zeiger verwendet werden, jedoch muss bei der Definition einer Variablen (oder bei ihrer ersten Verwendung) nach einem Punkt der Typename verwendet werden. Eine Variable wird dadurch in ihrem Gültigkeitsbereich an die Typeliste mit dem Namen gebunden.

Beispiel: Globalen Typezeiger definieren (zur Verwendung mit dem Beispiel-Type der vorigen Seite)

Global Aktiv.Spieler

Die so definierte Variable „Aktiv“ ist für die ganze Laufzeit des Programms an den Type „Spieler“ gebunden. Daher braucht man .Spieler bei der weiteren Verwendung der Variablen nicht mehr angeben. Type-Zeiger können aber auch lokal definiert werden:

Beispiel: Lokalen Typezeiger definieren (zur Verwendung mit dem Beispiel-Type der vorigen Seite)

Local Aktiv.Spieler

Die so definierte Variable „Aktiv“ (im Hauptprogramm) ist auch für die ganze Laufzeit des Programms an den Type „Spieler“ gebunden, kann jedoch nicht innerhalb von Funktionen verwendet werden. Sie kann jedoch als Parameter an Funktionen übergeben werden, wodurch ihr Wert in eine lokale Variable in der Funktion kopiert wird.

Hinweis

Da Konstanten zur Entwurfszeit eines Programms definiert werden, Objekte aber erst zur Laufzeit des Programms angelegt werden, können Konstanten nicht als Typezeiger definiert werden. Es gibt jedoch die vordefinierte Typezeiger-Konstante Null, die auf ein ungültiges Objekt verweist. Null ist also die einzig mögliche Typezeiger-Konstante. und Null ist der einzige Typezeiger, der nicht an eine Type-Liste gebunden ist.