Fonctions membres spécifiques générées par le compilateur pour une classe
Pour une classe donnée, le compilateur peut générer des fonctions membres spécifiques basées sur la classe définition et disponibilité d’implémentations définies par l’utilisateur. Ces fonctions membres incluent :
C 98/03
-
Constructeur par défaut : Le compilateur génère un constructeur par défaut si la classe ne le fait pas. définir n'importe quel constructeur.
-
Constructeur de copie : Un constructeur de copie est généré si la classe ne déclare pas son propre constructeur de copie.
-
Opérateur d'affectation de copie : De même, un opérateur d'affectation de copie est généré si la classe ne dispose pas d'une implémentation définie par l'utilisateur.
-
Destructeur : Le compilateur génère un destructeur si la classe ne définit pas son own.
Il est important de noter que ces fonctions membres ne sont générées qu'en cas de besoin. S'ils restent inutilisés, le compilateur ne les créera pas.
C 11
C 11 introduit des règles supplémentaires pour les fonctions membres générées par le compilateur :
-
Constructeur de déplacement : Si la classe ne dispose pas d'un constructeur de copie, d'un opérateur d'affectation de copie, d'un opérateur d'affectation de déplacement et destructeur, un constructeur de déplacement peut être généré, en supposant que la classe et ses membres sont mobiles et que le constructeur de déplacement n'est pas marqué comme supprimé.
-
Opérateur d'affectation de déplacement : De même, un opérateur d'affectation de déplacement peut être généré dans les mêmes conditions.
Importance du défaut Constructeur
Le constructeur par défaut sert à plusieurs fins :
- Il permet de créer des instances de la classe sans spécifier d'arguments.
- Il initialise les données de la classe membres aux valeurs par défaut.
- Il permet l'utilisation de conteneurs et d'algorithmes qui nécessitent une construction par défaut.
- Il facilite la création d'objets de manière dynamique (par exemple, en utilisant "nouveau").
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!