Je ne comprends pas ce que pourraient être les problèmes si un constructeur était hérité d'une classe de base. Cpp Primer Plus dit:
Les constructeurs diffèrent des autres méthodes de classe en ce qu'ils créent de nouveaux objets, alors que d'autres méthodes sont appelées par des objets existants . C'est une des raisons pour lesquelles les constructeurs ne sont pas hérités . Héritage signifie qu'un objet dérivé peut utiliser une méthode de classe de base, mais que, dans le cas des constructeurs, l'objet n'existe pas avant que le constructeur ait effectué son travail.
Je comprends que le constructeur est appelé avant la construction de l’objet.
Comment cela peut-il engendrer des problèmes si une classe enfant hérite (le terme héritage signifie que la classe enfant peut redéfinir la méthode de la classe parent, etc. )
Je comprends qu’il n’est pas nécessaire d’appeler explicitement un constructeur à partir d’un code [même si je n’en ai pas encore conscience.] Sauf lors de la création d’objets. Même alors, vous pouvez le faire en utilisant un mécanisme pour appeler le constuctor parent [In cpp, en utilisant ::
ou en utilisant member initialiser list
, En java en utilisant super
]. En Java, il existe une application pour l'appeler dans la 1ère ligne. Je comprends que cela consiste à s'assurer que l'objet parent est créé en premier, puis que la construction de l'objet enfant se poursuit.
Cela peut l' emporter . Mais, je ne peux pas arriver à des situations où cela peut poser un problème. Si l'enfant hérite du constructeur parent, qu'est-ce qui peut mal tourner?
Donc, est-ce juste pour ne pas hériter des fonctions inutiles. Ou y a-t-il plus?