Constructeur par copie classe hereditaire

Résolu
OtaksMaster Messages postés 22 Statut Membre -  
Sugel Messages postés 4859 Statut Membre -
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 4859 Statut Membre 727
 
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