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. Elles sont appelées « fonctions membres spéciales ». Ces fonctions affectent la façon dont les objets d'une classe donnée sont créés, détruits, copiés et convertis en objets d'autres types. Une autre propriété importante d'un grand nombre de ces fonctions est qu'elles peuvent être appelées implicitement (par le compilateur).
Les fonctions membres spéciales décrites dans cette section sont les suivantes :
Constructeurs. Activent l'initialisation automatique d'objets.
Destructeurs. Effectuent un nettoyage après la destruction explicite ou implicite d'objets.
Fonctions de conversion. Effectuent une conversion entre les types classe et d'autres types.
Fonction operator new. Alloue dynamiquement le stockage.
Fonction operator delete. Libère le stockage alloué à l'aide de l'opérateur new.
Opérateur d'assignation (operator=). Utilisé lors d'une assignation.
Les éléments de la liste précédente peuvent être définis par l'utilisateur pour chaque classe.
Les fonctions membres spéciales obéissent aux mêmes règles d'accès que les autres fonctions membres. Les règles d'accès sont décrites dans Contrôle d'accès aux membres. Le tableau ci-dessous résume le comportement des fonctions membres et friend.
Résumé du comportement des fonctions
Type de fonction |
La fonction est-elle héritée de la classe de base ? |
La fonction peut-elle être virtuelle ? |
La fonction peut-elle retourner une valeur ? |
La fonction est-elle membre ou friend ? |
Le compilateur génèrera-t-il la fonction si l'utilisateur ne le 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 |
Autres fonctions membres |
Oui |
Oui |
Oui |
Membre |
Non |
Fonctions friend |
Non |
Non |
Oui |
Friend |
Non |