Nicht zugeordnete Typen

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Sprachunterstützung für die Appmethod-Bibliotheken (C++)

Reelle 6-Byte-Typen

Das alte Object Pascal 6-Byte-Gleitkommaformat wird nun Real48 genannt. Der alte Real-Typ ist jetzt ein Double. In C++ gibt es kein Gegenstück zu dem Typ Real48. Folglich sollten Sie Object Pascal-Quelltext, der diesen Typ enthält, nicht mit C++-Quelltext verwenden, ansonsten wird beim Erzeugen der Header-Datei eine Warnung ausgegeben.

Arrays als Rückgabetypen von Funktionen

In Object Pascal kann eine Funktion als Argument oder als Typ ein Array übernehmen bzw. zurückgeben. Die Syntax für eine Funktion GetLine, die ein Array mit 80 Zeichen zurückgibt, lautet beispielsweise:

 type 
   Line_Data = array [0..79] of char;
 function  GetLine: Line_Data;

Appmethod C++ 2009 führt die Struktur StaticArray ein. Dieselbe Funktion kann folgendermaßen deklariert werden:

 StaticArray<char, 80>GetLine();

Die C++-Sprachspezifikation lässt Arrays nicht als Rückgabetypen (und auch nicht als Argumente) zu. Kapseln Sie zur Lösung dieses Problems ein Array in einer Struktur oder Klasse, und verwenden Sie diese Struktur oder Klasse als Rückgabetyp oder als Argumenttyp. Eine derartige Struktur ist bereits in der VCL/RTL definiert: siehe StaticArray. Dies ist das Appmethod C++-Gegenstück des integrierten Object Pascal-Typs "static array". Der Typ und die Anzahl der Elemente einer StaticArray-Variable müssen als template-Parameter angegeben werden.

Hinweis: Die Übergabe von großen Arrays per Wert von einer Funktion oder Prozedur zu einer anderen kann sich auf die Performance auswirken. Deshalb sollten Sie die Übergabe von Arrays per Referenz (oder Zeiger) erwägen.

Hinweis: Array-Eigenschaften, die in Object Pascal auch zulässig sind, stellen in C++ kein Problem dar, weil die Get-Methode einen Indexwert als Parameter übernimmt, und die Set-Methode ein Objekt des im Array enthaltenen Typs zurückgibt. Siehe Array-Eigenschaften erstellen.

Siehe auch