Maison >développement back-end >C++ >Comment fonctionnent les listes d'initialisation des membres dans les constructeurs C et l'héritage ?
Liste d'initialisation des membres dans les constructeurs
En C , les constructeurs peuvent initialiser les membres de données à l'aide d'une liste d'initialisation de membres. Cette liste apparaît après le nom du constructeur, séparé par deux points (:).
Liste d'héritage et d'initialisation des membres
La liste d'initialisation des membres peut également être utilisée pour appeler la base constructeurs de classe. Dans le code fourni :
class demo { public: demo(unsigned char le = 5, unsigned char default) : len(le) { ... } }; class newdemo : public demo { public: newdemo(void) : demo(0, 0) { ... } };
demo(0, 0) dans le constructeur de newdemo appelle le constructeur de sa classe de base démo avec les arguments 0 et 0, initialisant le membre len.
Utilisation générale de la liste d'initialisation des membres
En dehors de l'héritage, la liste d'initialisation des membres permet pour :
Initialisation des membres de données avant le corps du constructeur :
Les membres qui ne sont pas const peuvent être initialisés dans la liste d'initialisation avant l'exécution du corps du constructeur. Cela garantit que le membre est initialisé quel que soit le flux du constructeur.
Initialisation des membres de données Const :
Les membres de données Const ne peuvent être initialisés que dans leur déclaration ou avec un liste d'initialisation des membres.
Exemple :
class MyClass { public: MyClass(int value) : value(value) // Initialize const member in initialization list { ... } private: const int value; };
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!