Equivalents dans le langage C++ du langage Pascal Objet

De RAD Studio
Aller à : navigation, rechercher

Remonter à Gestion des types de données et des concepts du langage Object Pascal


Les paramètres var et sans type du Pascal Objet ne sont pas natifs en C++. Les deux ont des équivalents dans le langage C++ utilisés dans C++Builder.

Paramètres var

Le C++ et le Pascal Objet ont tous les deux le concept de "transfert par référence" (appelé également transfert par adresse). Ce sont des arguments modifiables. En Pascal Objet ce sont des paramètres var. La syntaxe des fonctions attendant un paramètre var est

 procedure  myFunc( var  x : Integer);

En C++, il faut transmettre ce type de paramètre par référence :

 void  myFunc( int & x);

Les références C++ et les pointeurs peuvent s’utiliser pour modifier l’objet. Cependant, une référence correspond mieux à un paramètre var car, à la différence d'un pointeur, une référence ne peut être réassociée et un paramètre var ne peut être réaffecté ; toutefois les deux permettent de modifier la valeur de ce qui est référencé.

Paramètres sans type

Pascal Objet autorise les paramètres de type non spécifié. Ces paramètres sont transmis aux fonctions sans type défini. La fonction réceptrice peut transtyper le paramètre dans un type connu avant de l’utiliser. C++Builder interprète les paramètres sans type comme des pointeurs sur un void (void *). La fonction réceptrice doit transtyper le pointeur void en un pointeur du type désiré. Par exemple :

 int  myfunc( void * MyName) 
 
 { 
 // Cast the pointer to the correct type; then dereference it . 
 int * pi =  static_cast < int *>(MyName) ; 
 return  1 + *pi ; 
 
 }

Voir aussi