Cette instruction est-elle vraie? La déclaration d'un constructeur avec des arguments masque le constructeur par défaut et vous ne pouvez pas appeler le constructeur par défaut.Constructeurs par défaut et paramétrés
0
A
Répondre
8
Pas exactement. Au lieu de cela, il supprime la génération du constructeur par défaut fourni par le compilateur. Considérez:
class Class1 {
};
Class1
aura un constructeur par défaut généré par le compilateur, de sorte que vous pouvez appeler new Class1()
, tandis que
class Class2 {
Class2(int);
}
ne sera pas un constructeur par défaut généré par le compilateur. Donc, vous ne pouvez pas appeler new Class2()
à moins que vous déclarez explicitement un constructeur par défaut pour Class2
:
class Class2 {
public:
Class2();
Class2(int);
}
Questions connexes
- 1. Constructeurs paramétrés et de conversion
- 2. Placement de nouveaux constructeurs et de constructeurs par défaut
- 3. WCF, Linq-to-SQL et les constructeurs paramétrés
- 4. Constructeur statique et par défaut
- 5. Comment utiliser les constructeurs non-par défaut avec Ninject?
- 6. Unité et constructeurs
- 7. paramétrés Constructor Cascading
- 8. constructeurs
- 9. Pourquoi y a-t-il 2 constructeurs dans le AccountController par défaut fourni par le MVC?
- 10. Activator.CreateInstance - Comment créer des instances de classes qui ont des constructeurs paramétrés
- 11. Comportement C# inattendu avec autoproperties et constructeurs
- 12. Constructeurs VB.NET
- 13. Constructeurs génériques et réflexion
- 14. Initialisateurs d'objet et constructeurs
- 15. Constructeurs et héritage?
- 16. rubis paramétrés expression régulière
- 17. Invites pour groupes paramétrés
- 18. Zend_Db_Table_Abstract et l'étendue par défaut
- 19. Groovy: balise link paramétrés
- 20. Modèles C# et constructeurs spéciaux
- 21. Comment puis-je faire en sorte que le compilateur crée les constructeurs par défaut en C++?
- 22. Initialisation explicite des valeurs par défaut des champs privés dans les constructeurs. WTF?
- 23. C#: Comment écrire des cas de test pour les constructeurs et les surcharges constructeurs?
- 24. Impossible de définir des valeurs par défaut si je définis plusieurs constructeurs surchargés dans Scala?
- 25. Comment créer un tableau de type C sans appeler les constructeurs par défaut?
- 26. constructeur comme argument par défaut
- 27. interception et l'unité des constructeurs
- 28. C++ pointeurs et les constructeurs
- 29. initialisation sans constructeurs et Dictionnaires
- 30. Conventions par défaut de NHibernate par défaut
Plutôt que de spécifier plusieurs constructeurs, la meilleure façon est d'utiliser l'argument par défaut comme ceci: class MaClasse { int i; public: MyClass (int i = 0) {this-> i = i} }; – Ashish
@Mac: Parfois ce que vous suggérez est meilleur, parfois non - cela dépend du scénario exact. – sharptooth