Fonctions membres spéciales (C++)
C++ définit plusieurs types de fonctions qui peuvent être déclarées uniquement en tant que membres de classe - celles-ci sont appelées « des fonctions membres spéciales. » Ces fonctions affectent la façon dont les objets d'une classe donnée sont créés, détruit, copié, puis converti en objets d'autres types.Une autre propriété qui importe plusieurs de ces fonctions est qu'ils peuvent être appelés implicitement (par le compilateur).
Les fonctions membres spéciales décrites de cette section sont les suivantes :
constructeurs.Vérifiez l'initialisation automatique des objets.
destructeurs.Effectuez un nettoyage après que les objets explicitement ou implicitement sont détruits.
fonctions de conversion.Le convertir entre les types de classe et d'autres types.
nouvelle fonction d'opérateur.alloue dynamiquement le stockage.
fonction DELETE d'opérateur.Libère le stockage alloué à l'aide de l'opérateur nouveau .
opérateur d'assignation (operator=).Utilisé lorsqu'une assignation a lieu.
Les éléments de la liste précédente peuvent être définis par l'utilisateur pour chaque classe.
Les fonctions membres spéciales sont conformes aux mêmes règles d'accès que d'autres fonctions membres.les règles d'accès sont décrites dans Contrôle d'accès de membre.Le tableau suivant résume la façon dont le membre et les fonctions friend se comportent.
résumé du comportement de fonction
Type de fonction |
La fonction est héritée de la classe de base ? |
La fonction peut être virtuelle ? |
La fonction peut retourner une valeur ? |
la fonction est-elle un membre ou une fonction friend ? |
le compilateur génèrera-il la fonction si l'utilisateur ne fait pas ? |
---|---|---|---|---|---|
Constructeur |
Non |
Non |
Non |
Membre |
Oui |
constructeur de copie |
Non |
Non |
Non |
Membre |
Oui |
destructeur |
Non |
Oui |
Non |
Membre |
Oui |
Conversion |
Oui |
Oui |
Non |
Membre |
Non |
Assignation (operator=) |
Non |
Oui |
Oui |
Membre |
Oui |
new |
Oui |
Non |
void* |
membre statique |
Non |
supprimer |
Oui |
Non |
void |
membre statique |
Non |
d'autres fonctions membres |
Oui |
Oui |
Oui |
Membre |
Non |
fonctions friend |
Non |
Non |
Oui |
Friend |
Non |