CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] Appel constructeur héritage

vive_cod4
vive_cod4
Niveau 9
11 décembre 2012 à 17:27:40

Bonjour à tous,

Tout d'abord mon code : http://pastebin.com/1ScAMDbH

Quelques nommages :
D : Parent
O : Fils1
P : Fils2
A : sous-fils
E : autre

J'aimerais que dans sous-fils, le constructeur de Parent soit appelé. J'appelle le constructeur parent dans Fils1 et Fils2, donc logiquement je me suis dit que dans le sous-fils, en appellant le constructeur de Fils1 & Fils2, il y aura bien 1 des 2 qui appellera le constructeur de Parent. Or le problème c'est que mon compilateur me dit que "D n'a aucun constructeur par défaut" (d'où l'argument).

Est-ce normal d'appeler le constructeur de Parent depuis la classe sous-fils ? Y-a-t-il une autre solution ?

Merci d'avance

PocoIo
PocoIo
Niveau 10
11 décembre 2012 à 18:28:16

C'est normal et même nécessaire car ici D est une classe virtuelle et le langage garantit que son constructeur ne sera appelé qu'une seule fois (Dans ton cas il serait appelé deux fois, une première fois dans la classe O et une deuxième fois dans la classe P), il t'oblige donc a appeler le constructeur dans la classe la plus dérivée, ici A.

vive_cod4
vive_cod4
Niveau 9
11 décembre 2012 à 18:30:18

Merci pour l'explication, j'ai bien compris :)

Paulop
Paulop
Niveau 12
11 décembre 2012 à 18:47:31

Dans ton code tu dis que E hérite de A, alors que c'est le contraire.

Pour ton problème, ta classe A est censée initialiser elle même la classe D, car vu que tu as O et P qui héritent de manière virtuelle, A ne sait pas s'il doit construire D par O ou par P, il doit donc le faire lui même.

Paulop
Paulop
Niveau 12
11 décembre 2012 à 18:48:15

Arf c'est ça d'aller faire un truc avant de poster sa réponse, on se fait griller par les autres :)

vive_cod4
vive_cod4
Niveau 9
11 décembre 2012 à 20:39:12

Paulop, non c'est bien E qui hérite de A, c'est juste que je sais pas comment faire une flèche vers le bas, d'où le commentaire, car logiquement pour les autres on suppose que la flèche est en haut.

Paulop
Paulop
Niveau 12
11 décembre 2012 à 21:12:39

Oui mais dans ton code E n'hérite pas de A.

vive_cod4
vive_cod4
Niveau 9
11 décembre 2012 à 21:13:06

Oups, toutes mes excuses, tu as raison, je me suis trompé ! (J'aurais dû faire un schéma UML, ça aurait été plus clair ...)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment