Maison > Article > développement back-end > Constructeurs C : que signifie le deux-points après le constructeur ?
C : Comprendre les deux points après un constructeur
En C , les deux points suivant un constructeur indiquent l'utilisation d'une liste d'initialisation de membres. Cette liste sert deux objectifs principaux :
Appel Constructeurs de classe de base
Lorsqu'une classe dérivée est définie, la liste d'initialisation des membres peut être utilisée pour appeler le constructeur de la classe de base. Ceci est réalisé en spécifiant le nom du constructeur de la classe de base suivi des arguments appropriés. Par exemple, dans l'exemple de code que vous avez fourni :
class newdemo : public demo { public: newdemo(void) : demo(0, 0) { // Constructor body } };
Dans ce cas, le : demo(0, 0) initialise la démo de la classe de base avec les paramètres 0 et 0.
Initialisation des membres de données
La liste d'initialisation des membres peut également être utilisée pour pré-initialiser les membres de données avant le corps du constructeur. exécute. Ceci est particulièrement utile pour les membres de données const ou les membres de données de référence. Pour les membres const, leur initialisation dans le corps du constructeur n'est pas autorisée, car leurs valeurs ne peuvent pas être modifiées une fois attribuées.
class Demo { public: Demo(int& val) : m_val(val) {} private: const int& m_val; };
Dans cet exemple, le membre de données const m_val est initialisé à l'aide de la liste d'initialisation des membres. Il s’agit du seul emplacement autorisé pour attribuer une valeur à un membre de données const. De même, les membres des données de référence ne peuvent être initialisés que via la liste d'initialisation des membres.
Avantages supplémentaires
Au-delà des utilisations ci-dessus, la liste d'initialisation des membres est devenue une pratique courante dans Code C. Il améliore la lisibilité du code et sert d'indication claire de l'initialisation des membres de données.
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!