Bibliothekselement - Konstruktoren

Konstruktoren sind notwendig bei Bibliotheken, welche ein instanzierbares oder dimensionierbares Objekt bereitstellen. Dies betrifft die Bibliothekstypen .object und .type.

Es können mehrere Konstruktoren angelegt werden. Konstruktoren die sich in der Liste manuell löschen lassen, sind optional und werden automatisch durch eine interne Standardvariante ersetzt, wenn sie nicht vorhanden sind. Zusätzlich gibt es noch die Operator-Konstruktoren. Die einen Operator, z.B. „+“ für das Objekt bereitstellen. Ist z.B. ein Operator-Konstruktor für die Addition vorhanden (OperatorADD), können Objekte gleichen Types addiert werden „obj1 + obj2“.

Da es sich beim Bibliothekstyp .object um ein instanzierbares Objekt handelt, ist die Implementation von Konstruktoren zwingen notwendig. Immer wenn ein neues Objekt erzeugt werden soll, wird der passende Konstruktor aufgerufen. Zum Zweck verschiedener Möglichkeiten, ist in Objekt-Bibliotheken die Funktionalität „Methoden-Überladen“ generell aktiviert. Siehe hierzu auch den Hinweis in der Übersicht. Klicken sie auf das Fragezeichen-Symbol neben „Methoden-Überladen“.

Das Methoden-Überladen erlaubt das Anlegen mehrerer Methoden gleichen Namens mit unterschiedlichem Verhalten. Der Compiler sucht anhand der Parameter und Ggf. Rückgabewerte die passende Methode aus. So auch bei den Konstruktoren.

Das Beispielobjekt „xstring“ finden sie im Ordner Library/Custom/

Beispiel 1

Besitzt ein Konstruktor keine Parameter, dann lautet der Aufruf zum Erzeugen eines neuen Objekts:

dim obj as myobject
 
obj = new myobject

Beispiel 2

Wird ein zusätzlicher Konstruktor angelegt, der einen String-Parameter erwartet, dann sind auch Strings erlaubt:

dim obj as myobject
 
obj = new myobject
obj = new myobject("hello")
obj = "hello" ' bei Zuweisung wird ebenfalls ein passender Konstruktor gesucht.

Beispiel 3

Würde man einen weiteren Konstruktor anlegen, welcher Datenobjekte zulässt:

dim obj as myobject
 
obj = new myobject
obj = new myobject("hello")
obj = "hello" ' bei Zuweisung wird ebenfalls ein passender Konstruktor gesucht.
 
obj = new myobject(mydata)
obj = mydata ' bei Zuweisung wird ebenfalls ein passender Konstruktor gesucht.
 
data mydata
  .db "hallo"
enddata

Beispiel 4

Legt man einen Konstruktor für Operatoren an, z.B. „OperatorADD“, dann wären auch Additionen mit diesem Objekt ausführbar:

dim result,obj1,obj2 as myobject
 
obj1 = "hello "
obj2 = "world"
 
'result erhält ein neues Objekt "myobject"
'mit dem Ergebnis aus der Operation
result = obj1 + obj2  
 
'Existieren passende Konstruktoren, sind auch gemischte
'Operationen erlaubt. Für "harry" wird vor der Operation
'automatisch der passende Konstruktor aufgerufen.
result = obj1 + "harry"