Bonjour à tous et bonnes vacances,
Je travail actuellement avec le livre de B. Stroustrup "principe et pratique avec C++" (Excellent au demeurant à mon humble avis).
Je suis au chapitre 14 où il est question d'héritage, classe abstraite, fonctions virtuelles ...
Ce chapitre travail avec une abstraction de la bibliothèque FLTK avec des classes fournies par le livre (comme Shape, Line, Circle, Rectangle...)
Un des exercice demande de dériver la classe Circle afin de faire une classe Smiley composée de 2 yeux et une bouche eux meme des circles.
Ma relexion m'a amenée à me dire que un Smiley est une sorte de Circle donc dérivation, mais qu'un Smiley a des yeux donc composition de Eyes dans la classe Smiley sous la forme.
yeux étant initialisé dans la liste d'initialisation du constructeur de Smiley.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2private: Eyes yeux;
J'ai fournis dans Smiley une fonction de modification de l'épaisseur des lignes des yeux et dans Eyes la fonction d'accès adéquate (public).
Mon problèmes est que si je veux changer l'épaisseur ou tout autre caractéristique des yeux à partir de mon objet Smiley, ça ne fonctionne pas.
Par contre, si je le fais en créant une instance directe de Eyes dans le main(), là ça fonctionne sans problème.
Je ne comprend pas pourquoi.
Merci d'avance.
Partager