Defaut - Définition des opérateurs par defaut d'un type
Attribut d'instruction. Définit le mode d'usage par défaut du module..
Syntaxe
Defaut
Description
Employée dans la déclaration d'un type, l'instruction Defaut
spécifie que les opérateurs suivants sont implicitement définis :
- = pour l'affectation d'un objet du type courant dans un objet de ce même type.
Il s'agit de la méthode la plus rapide pour réaliser une affectation puisque cela s'effectue par un transfert de référence des objets.
- == pour l'égalité entre un objet du type courant et un autre objet de ce même type.
Il s'agit de la méthode la plus rapide pour réaliser une égalité puisque cela s'effectue par comparaison des références des objets.
- != pour l'inégalité entre un objet du type courant et un autre objet de ce même type.
Il s'agit de la méthode la plus rapide pour réaliser une inégalité puisque cela s'effectue par différence des références des objets.
- +=, -=, *=, /=, \=, %=, ^=, <<=, >>=, &= ou |= pour tout opérateur +, -, *, /, \, %, ^, <<, >>, & ou | défini explicitement dans le type.
Ces opérateurs sont définis par composition de l'opérateur explicite avec l'opérateur =. Il faut toutefois que le prototype de l'opérateur explicite ait un résultat identique au type courant.
Tous les opérateurs implicites sont Public. Tous les opérateurs implicites peuvent être surchargés.
Exemple
Type TypA Defaut
/**************/
/* Les opérateurs =, == et != sont implicites. */
A : Entier;
Operateur =(TA:Nul Ou TypA) Retourner Nul Ou Booleen;
/* L'opérateur = implicite est surcharge. */
Operateur +(E:Entier) Retourner Entier;
/* L'opérateur + ne retourne pas un objet de type TypA donc += n'est pas implicitement défini. */
Operateur *(TA:Nul Ou TypA) Retourner Nul Ou TypA;
/* L'opérateur * retourne un objet de type TypA donc *= est implicitement défini. */
Constructeur();
Fin Type
Variable
/******/
Principal
/*******/
Debut
V1=V2;
/* Emploi de l'opérateur explicite =. */
...
Si V1==V2 Alors
/* Emploi de l'opérateur implicite ==. */
Fin Si
...
V1*=V2;
/* Emploi de l'opérateur implicite *= déduit de * et =. */
Fin Principal
Voir aussi
Type pour définir un type et Operateur pour définir des opérateurs explicitement.
Traduction