Constructeur

Attribut de Type. Définition d'un constructeur d'un objet d'un type en un objet du type courant.

Définition du corps d'un constructeur d'un objet d'un type.

Syntaxe

TypeAcces Constructeur ( ListeDeParametresDUnAppel )

TypeAcces Constructeur NomDUnType ( ListeDeParametresDUnAppel )
CorpsDUneProcedureOuDUneFonction
Fin Constructeur

Description

L'instruction Constructeur permet de déclarer une méthode spéciale dont le but est de construire un objet du type en cours de définition à partir d'un ou plusieurs objets. Cette construction engendre la création d'un nouvel objet du type courant dont l'initialisation des propriétés est à la charge de la méthode définie par l'instruction Constructeur.

Le constructeur n'alloue pas l'objet, il ne fait que l'initialiser d'une manière particulière. L'allocation de l'objet est réalisée par la méthode Allouer.

Pour chaque, il peut exister un constructeur implicite utilisé lors de la déclaration d'un objet de ce type. L'effet du constructeur implicite a pour effet d'initialiser chaque propriété à la valeur par défaut de son type. Ce constructeur implicite se déclare par Constructeur().
Si le constructeur implicite n'est pas déclaré, toutes les variables et tous les propriétés de ce type doivent être déclarés en Nul Ou.
La définition par défaut du constructeur implicite peut être surchargée.

Pour les types paramétrés, les constructeurs possèdent des premiers paramètres implicites identiques aux paramètres du type.

Cette méthode est automatiquement synchronisée par une déclaration implicite de l'inflexion Synchroniser. L'accès aux propriétés de l'objet est direct, ce qui permet d'améliorer nettement les performances.

Exemple

Type A
/*****/ Fin Type
/* Le type A possède un constructeur explicite mais pas de constructeur implicite. */

Type B
/*****/ Fin Type
/* Un constructeur implicite est défini pour B. */

Type C(P1 : Entier, P2 : Enumere, P3 : Type)
/******************************************/
Fin Type
/* C possède un constructeur sans paramètre. Il n'est pas implicite comme le type possède trois paramètres. */

Constructeur A(P1 : Entier)
/*************************/
/* Corps du constructeur de A. */
...
Fin Constructeur
Constructeur C(P1 : Entier, P2 : Enumere, P3 : Type)
/**************************************************/
/* Corps du constructeur de C. */
...
Fin Constructeur

Variable
/******/

Principal
/*******/
Debut
V1=A(10);
/* Construction de V1. */
V2=B(V1);
/* Construction de V2. La valeur d'initialisation ne sert a rien en ce cas. */
V3=C(2,Booleen,Caractere);
/* Construction de V3. */
Fin Principal

Voir aussi

Type pour définir un type. Destructeur pour définir le destructeur d'un type.

Traduction

---------