Constructeur par copie classe hereditaire

Résolu/Fermé
OtaksMaster Messages postés 19 Date d'inscription vendredi 26 juillet 2013 Statut Membre Dernière intervention 1 décembre 2015 - 16 mai 2015 à 19:34
Sugel Messages postés 4070 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 - 16 mai 2015 à 21:35
Bonjour,

je me demandais juste si mettons, j'ai une classe : C et une classe héréditaire de C : HC

si j'utilise le constructeur par copie pour créer une instance de C avec en paramètre une instance de HC est-ce-que l'instance créée sera une instance de HC ou de C ???
Help please.
A voir également:

1 réponse

Sugel Messages postés 4070 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 724
16 mai 2015 à 21:35
Ce n'est pas pour rien que les constructeurs ne sont pas héritables :
Ta classe a beau être dérivée d'une autre, elle comporte pourtant un contenu différent !

Ainsi, utiliser un constructeur de copie sur une structure d'une taille différente risque de causer des erreurs et un plantage potentiel
(plus de données ajoutées à la stack que retirées, création d'un décalage).

Mais avant tout, tu risque de ne pas y arriver :
le compilateur t'insultera assez copieusement pour que tu n'y parvienne pas ;-)

Ces problèmes peuvent être surmontés dans des conditions bien particulières, qui sont dépendantes de l'implémentation. Il serait ainsi bien malvenu de compter dessus !

En plus, utiliser un constructeur non adapté peut laisser des champs non initialisés.

Enfin, pour répondre à ta question, si le compilateur ne t'insultait pas, il créerai en toute logique une instance de C, vu que c'est ce que tu lui demande.

DISCLAIMER : Je ne code pas en C++ de manière régulière, mais j'ai de bonnes bases et des connaissances de bas niveau. Ma réponse peut être inexacte dans le sens qu'il se peut que il soit prévu un tel cas dans les spécifications C++, et que cette opération soit légale en dépit du bon sens.
0