Types sans correspondants

De RAD Studio
Aller à : navigation, rechercher

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


Types réels sur six octets

L'ancien type Pascal Objet de format à virgule flottante sur 6 octets est maintenant appelé Real48. L'ancien type Real est maintenant un double. C++ n'a pas d'équivalent pour le type Real48. Vous ne devez donc pas utiliser de code Pascal Objet utilisant ce type dans du code C++. Si vous le faites, le générateur de fichier d'en-tête génère un avertissement.

Tableaux comme types de retour des fonctions

En Pascal Objet, une fonction peut prendre comme argument, ou renvoyer comme type, un tableau. Par exemple, la syntaxe d’une fonction GetLine renvoyant un tableau de 80 caractères est

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

C++Builder 2009 introduit la structure StaticArray. Vous pouvez déclarer la même fonction comme suit :

 StaticArray<char, 80>GetLine();

La spécification du langage C++ ne permet pas les tableaux en tant que types de retour (ni en tant qu'arguments). Une solution consiste à encapsuler un tableau dans une structure ou une classe, et d'utiliser cette structure ou cette classe en tant que type de retour ou type d'argument. Une telle structure est déjà définie dans les bibliothèques RAD Studio : voir StaticArray. C'est l'équivalent C++Builder du type intégré de tableau statique Delphi. Le type et le nombre d'éléments d'une variable StaticArray doivent être spécifiés comme des paramètres de template.

Remarque : La transmission de larges tableaux par valeur, d'une fonction ou d'une procédure à une autre, peut affecter les performances. Passez plutôt les tableaux par référence (ou pointeur).


Remarque : Les propriétés tableau, aussi valides en Pascal Objet, ne posent pas de problème en C++ car la méthode Get prend une valeur d'index comme paramètre, et la méthode Set renvoie un objet du type contenu par le tableau. Voir Création de propriétés tableau.

Voir aussi