Object Pascal-Sprachentsprechungen in C++

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Unterstützung für Object Pascal-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 ; 
 
 }

Siehe auch