Maison > développement back-end > C++ > Comment C initialise-t-il les données membres non statiques ?

Comment C initialise-t-il les données membres non statiques ?

Mary-Kate Olsen
Libérer: 2025-01-05 05:44:43
original
254 Les gens l'ont consulté

How Does C   Initialize Non-Static Data Members?

Ordre d'initialisation des données membres non statiques

En C, lors de l'initialisation d'un objet, l'ordre d'initialisation des données membres non statiques est un sujet de préoccupation. Pour comprendre cet ordre, il est important de se référer à la section pertinente de la norme C.

Selon 12.6.2 de la norme C, les données membres non statiques sont initialisées dans l'ordre dans lequel elles apparaissent dans la définition de la classe. . Ceci quel que soit l'ordre dans lequel les listes d'initialisation des membres apparaissent dans le corps de la classe.

Considérons l'exemple suivant :

class A {};
class B {};
class X
{
    A a;
    B b;
};
Copier après la connexion

Dans la classe X, l'ordre d'initialisation est A suivi de B. . En effet, A est déclaré avant B dans la définition de la classe. Peu importe si l'ordre des listes d'initialisation des membres au sein du constructeur était différent.

Cet ordre d'initialisation garantit que les classes de base et les sous-objets membres sont détruits dans l'ordre inverse de l'initialisation. Par conséquent, B serait détruit avant A dans l’exemple ci-dessus.

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