/* Fichier HeritMul.cpp : (héritage multiple : aucune question au final) Cet exemple est à titre d'information classe Point class CouleurVisible \ / \ / \ / classe PointColoreVisible */ #include using namespace std; class Point { private : int x, y ; public: Point() : x(0), y(0) { } Point(int a, int b) : x(a), y(b) { } void afficher() { cout << "fonction afficher de la classe Point : " << endl; cout << "Point : \n\n"; } }; class CouleurVisible { private : bool avecCouleur, estVisible ; public : CouleurVisible(bool c = false, bool v = false) { avecCouleur = c ; estVisible = v ; } void afficher() { cout << "fonction afficher de la classe CouleurVisible : " << endl; cout << ( estVisible ? " est visible ": " est invisible ") << endl; cout << ( avecCouleur ? " colore ": " incolore ") << endl; } }; // dérivée de 2 classes de base => héritage multiple class PointColoreVisible : public Point, public CouleurVisible { public : PointColoreVisible(int abs, int ord, bool c, bool v) : Point(abs, ord), CouleurVisible(c, v) { } void afficher() { cout << "fonction afficher de la classe PointColoreVisible : " << endl; Point::afficher(); CouleurVisible::afficher(); } }; void continuer() { cout << endl << endl << "Appuyez sur une lettre suivie de Entree " ; char lettre; cin >> lettre ; cout << endl << endl; } int main() { Point A(12, 6); A.afficher(); CouleurVisible cv(true, false); cv.afficher(); PointColoreVisible B(20, 50, false, true); B.afficher(); continuer(); return 0; } /*Exécution fonction afficher de la classe Point : Point : fonction afficher de la classe CouleurVisible : est invisible colore fonction afficher de la classe PointColoreVisible : fonction afficher de la classe Point : Point : fonction afficher de la classe CouleurVisible : est visible incolore Appuyez sur une lettre suivie de Entree k */