appel du constructeur d'un membre de classe dans le constructeur
Puis-je appeler le constructeur d'un membre dans mon constructeur de la Classe?
disons que Si j'ai un membre bar
de type classe foo
dans ma classe MClass
. Puis-je appeler le constructeur de la barre dans MClass du constructeur? Si non, alors comment puis-je initialiser mon membre en-bar?
C'est un problème d'initialisation des membres en composition(agrégation).
source d'informationauteur shampa
Vous devez vous connecter pour publier un commentaire.
Oui, on peut certainement! C'est ce que l' constructeur de liste d'initialiseur est pour. C'est un élément essentiel dont vous avez besoin pour initialiser les membres qui n'ont pas de constructeurs par défaut, ainsi que des constantes et des références:
Vous encore besoin de la liste d'initialiseur de sélectionner un constructeur par défaut pour les classes de base de constructeurs de classe dérivée.
Oui, vous pouvez:
La sortie est:
Voir ce sur ideone.com
Comme ceci:
Si votre constructeur veut paramètres, vous pouvez passer d'eux. Ils peuvent être des expressions faite à partir du constructeur de la classe de paramètres et déjà initialisée types.
Rappelez-vous: les membres sont initialisés dans l'ordre où elles sont déclarées dans la classe, et non l'ordre où ils apparaissent dans la liste d'initialisation.
Par l'initialiseur de la liste, si la classe de base n'ont pas de par défaut constructeur.
Oui, vous le pouvez. Ceci est fait dans la liste d'initialisation de votre classe. Par exemple:
Ce sera de construire
bar
avec les arguments passés. Normalement, les arguments seront les autres membres de votre classe ou les arguments qui ont été transmis à votre constructeur. Cette syntaxe est requise pour tous les membres qui n'ont pas d'argument des constructeurs.