Object Pascal-Sprachentsprechungen in C++
Nach oben zu Unterstützung für Delphi-Datentypen und Sprachkonzepte
Die var- und untypisierten Parameter von Object Pascal sind in C++ nicht nativ. In C++ gibt es Sprachentsprechungen, die in C++Builder verwendet werden.
Var-Parameter
C++ und Object Pascal verwenden das Konzept der “Übergabe per Referenz”. Dabei handelt es sich um modifizierbare Argumente. In Object Pascal werden sie var-Parameter genannt. Die Syntax für Funktionen, die einen var-Parameter übernehmen, lautet:
procedure myFunc( var x : Integer);
In C++ müssen Sie diese Parametertypen per Referenz übergeben:
void myFunc( int & x);
Sowohl mit C++-Referenzen als auch Zeigern kann ein Objekt modifiziert werden. Eine Referenz entspricht aber eher einem var-Parameter, weil eine Referenz im Gegensatz zu einem Zeiger nicht neu gebunden werden kann, und ein var-Parameter auch nicht neu zugewiesen werden kann. Obwohl beide den Wert dessen, was referenziert wird, ändern können.
Untypisierte Parameter
In Object Pascal sind Parameter mit nicht festgelegtem Typ zulässig. Diese Parameter werden an Funktionen ohne definierten Typ übergeben. Die empfangende Funktion muss vor der Verwendung des Parameters dessen Typ in einen bekannten Typ umwandeln. C++Builder interpretiert untypisierte Parameter als Zeiger-auf-void ( void *). Die empfangende Funktion muss den void-Zeiger in einen Zeiger des gewünschten Typs umwandeln. Dazu ein Beispiel:
int myfunc( void * MyName)
{ // Zeiger in den korrekten Typ umwandeln und ihn dann dereferenzieren .
int * pi = static_cast < int *>(MyName) ;
return 1 + *pi ;
}