Maison >développement back-end >C++ >Où dois-je placer la liste d'initialisation des membres dans un constructeur C ?

Où dois-je placer la liste d'initialisation des membres dans un constructeur C ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-14 12:33:11348parcourir

Where Should I Place the Member Initializer List in a C   Constructor?

Placement de la liste d'initialisation dans la définition du constructeur

Lors de la définition d'un constructeur de classe, il est essentiel de comprendre le rôle de la liste d'initialisation des membres. Cette liste initialise les variables membres dans le cadre de la définition du constructeur.

En ce qui concerne son emplacement, la liste d'initialisation fait partie de la définition du constructeur, pas de sa déclaration. Cela signifie qu'il n'est pas inclus dans le fichier d'en-tête (.h) où la classe elle-même est déclarée. Au lieu de cela, il réside dans le fichier source (.cpp) où le constructeur est défini.

Exemple d'utilisation

Considérez la classe suivante :

class Example
{
private:
    int m_top;
    const int m_size;
public:
    Example(int size, int grow_by = 1);
};

Dans cet exemple, le constructeur est défini comme suit :

Example::Example(int size, int grow_by) : m_size(5), m_top(-1)
{
    // ...
}

La liste d'initialiseurs au sein de ce constructeur initialise les variables membres m_size et m_top. Il est crucial d'inclure la liste d'initialiseurs dans la définition du constructeur dans le fichier source (.cpp).

Par conséquent, l'emplacement correct de la liste d'initialiseurs se trouve dans la définition du constructeur, et non dans le fichier d'en-tête ( .h) où la classe est déclarée.

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!

Déclaration:
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