Maison >développement back-end >C++ >Comment fonctionnent les listes d'initialisation des membres dans les constructeurs C ?
Listes d'initialisation des membres dans les constructeurs
En C , un deux-points suivi d'une expression après un constructeur fait partie d'une liste d'initialisation de membre. Il répond à deux objectifs principaux :
1. Appel des constructeurs de classe de base
Dans les classes dérivées, la liste d'initialisation des membres peut être utilisée pour spécifier les arguments pour appeler le constructeur de la classe de base. Par exemple, dans le code suivant :
class demo { public: demo(unsigned char le = 5, unsigned char default) : len(le) { // Body of the constructor } }; class newdemo : public demo { public: newdemo() : demo(0, 0) { // Body of derived class constructor } };
La syntaxe : demo(0, 0) dans le constructeur newdemo appelle le constructeur de la classe de base demo avec les arguments 0 et 0.
2. Initialisation des membres de données
Avant d'exécuter le corps du constructeur, la liste d'initialisation des membres peut être utilisée pour initialiser les données membres de la classe. Ceci est particulièrement utile pour les membres const qui ne peuvent pas être affectés dans le corps du constructeur. Par exemple :
class Demo { public: Demo(int& val) : m_val(val) { // Body of constructor } private: const int& m_val; };
Dans cet exemple, la syntaxe : m_val(val) initialise le membre de données de référence m_val const avec la valeur de l'argument du constructeur val.
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!