Maison > développement back-end > C++ > Le constructeur par défaut de C initialise-t-il les membres de type intégrés ?

Le constructeur par défaut de C initialise-t-il les membres de type intégrés ?

Mary-Kate Olsen
Libérer: 2024-12-14 03:34:09
original
727 Les gens l'ont consulté

Does C  's Default Constructor Initialize Built-in Type Members?

Comportement des constructeurs par défaut avec les types intégrés

Question :

Les constructeurs par défaut, générés automatiquement par le compilateur, initialiser les types intégrés en C ?

Réponse :

Non, le constructeur par défaut (créé par le compilateur pour les classes sans constructeurs définis par l'utilisateur) n'initialise pas les membres des types intégrés.

Cependant, il est important de noter qu'il existe d'autres mécanismes d'initialisation des instances de classe qui n'impliquent pas la valeur par défaut constructor :

  • Value-initialization : La syntaxe C() (lorsqu'aucun constructeur déclaré par l'utilisateur n'est disponible) effectue une initialisation de valeur, qui initialise à zéro les types intégrés.
  • Initialisation de l'agrégat : La syntaxe C {} ou C{} ; initialise tous les membres d'une classe sans invoquer aucun constructeur.

Exemple :

Considérons la classe suivante :

class C {
public:
  int x;
};
Copier après la connexion

Le compilateur -le constructeur par défaut fourni pour C ne s'initialisera pas C::x.

C c; // Compiler-provided default constructor is used
// c.x contains garbage
Copier après la connexion

En revanche, l'utilisation de l'initialisation par valeur ou de l'initialisation globale initialisera C::x:

C c = C(); // Uses value-initialization instead of default constructor
            // c.x == 0

C d{}; // Aggregate initialization
       // d.x == 0
Copier après la connexion

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