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 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 - 16 mai 2015 à 21:35
Sugel Messages postés 4076 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 - 16 mai 2015 à 21:35
A voir également:
- Constructeur par copie classe hereditaire
- Copie cachée - Guide
- Copie écran samsung - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie disque dur - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
1 réponse
Sugel
Messages postés
4076
Date d'inscription
jeudi 18 août 2011
Statut
Membre
Dernière intervention
19 juin 2017
725
16 mai 2015 à 21:35
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.
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.