Maison > développement back-end > C++ > Quelles fonctions membres le compilateur C génère-t-il pour une classe ?

Quelles fonctions membres le compilateur C génère-t-il pour une classe ?

Barbara Streisand
Libérer: 2024-12-23 11:24:09
original
534 Les gens l'ont consulté

What Member Functions Does the C   Compiler Generate for a Class?

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal