Si je comprends bien, le constructeur de la classe de base est toujours appelé avec la création d'un objet de la classe dérivée. Existe-t-il un moyen d'appeler un constructeur de classe de base surchargé lors de la création de l'objet dérivé?Appel du constructeur de base surchargé de la classe dérivée
-4
A
Répondre
5
Oui, via une liste d'initialisation:
class Base
{
public:
Base (int n) : mN(n) {}
private:
int mN;
};
class Derived : public Base
{
public:
Derived() : Base (42) {};
// ^^^^^^^^^^^
// Initialization List
};
Pour en savoir plus sur la syntaxe de la liste d'initialisation, reportez-vous cette question:
What is this weird colon-member (" : ") syntax in the constructor?
+0
Merci. Je n'étais pas familier avec ça. – user2079828
+0
Notez que ce n'est pas comme en C#, où Base est ce que vous devez écrire là (exactement cela). Base serait le nom de la classe de base. – darkgaze
Questions connexes
- 1. Appel du constructeur surchargé d'une classe de base virtuelle
- 2. Constructeur surchargé dans la classe dérivée
- 3. C++: Appel de la fonction dérivée du constructeur de base?
- 4. Appel d'une fonction de membre d'une classe dérivée du constructeur de la classe de base
- 5. appel ambigu constructeur surchargé C++
- 6. appel constructeur de la classe de base
- 7. constructeur de classe dérivée prenant objet de classe de base
- 8. Appel d'un constructeur de classe de base dans une fonction de classe dérivée
- 9. C++ - Instanciation de la classe dérivée et utilisation du constructeur de la classe de base
- 10. erreur constructeur XmlSerializer avec classe dérivée d'une classe de base
- 11. appel d'une méthode de classe parente d'une classe dérivée dérivée
- 12. Classe dérivée n'appelant pas constructeur entier de base
- 13. Instanciation de modèle de classe de base dépendant du type d'argument constructeur de classe dérivée
- 14. classe de base et la classe dérivée
- 15. C# Héritage: Comment appeler le constructeur de la classe de base quand j'appelle le constructeur de la classe dérivée
- 16. Appel d'une méthode de classe à partir du constructeur
- 17. Ne pas appeler constructeur de classe de base de la classe dérivée
- 18. Appeler un constructeur de classe de base de la classe dérivée en Java
- 19. Java; conversion de la classe de base en classe dérivée
- 20. Désactiver l'avertissement concernant l'initialisation explicite du constructeur de base dans le constructeur de copie de la classe dérivée
- 21. Appel de la méthode de classe dérivée de référence de classe de base générique
- 22. Impossible de créer un constructeur surchargé dans la sous-classe
- 23. classes C + - Déclaration du constructeur dans la classe dérivée
- 24. Appel outrepassée Méthodes de classe dérivée de la classe de base
- 25. Appel du constructeur de classe enfant avant le constructeur parent
- 26. PostSharp: OnMethodBoundaryAspect sur le constructeur de la classe dérivée
- 27. C l'appel du constructeur surchargé est ambigu
- 28. Appel fonction de classe dérivée de la classe de base sans l'aide de fonctions virtuelles
- 29. Classe dérivée de la classe de base en php
- 30. Appel d'un constructeur de classe de base de second niveau
Connaissez-vous des listes de initialisation du constructeur à tous? –
Utiliser les listes d'initialisation de constator –
Alok: Pas vraiment dupe. Cette question demande "comment puis-je faire X", et la réponse est "utiliser Y". Cette question demande "Qu'est-ce que Y" mais ne précise pas comment elle résout X. La lecture de la question liée peut seulement servir à confondre, pas clarifier, jusqu'à ce que l'OP sache ce que Y est. –