#include #include using namespace std; class Carre { private : double cote ; public : Carre(double); Carre(); Carre(const Carre&); // constructeur de recopie ~Carre() { cout << "Appel du destructeur\n" ; } friend ostream& operator << (ostream&, const Carre&); }; // fin de Carre Carre::Carre(double cote) { cout << "Appel au constructeur à un parametre\n"; this->cote = cote; } Carre::Carre() { cout << "Appel au constructeur sans parametre\n"; cote = 5.5; } Carre::Carre(const Carre& autre) { cout << "Appel au constructeur de recopie\n"; this->cote = autre.cote; } ostream& operator << (ostream& sortie, const Carre & unCarre) { sortie << "Infos du carre : " << unCarre.cote << endl; return sortie; } void continuer() { char reponse ; cout << "\nAppuyez sur une lettre suivie de Entree " ; cin >> reponse ; } void temoigner() { Carre c6; cout << "afficher c6 dans temoigner : " << c6 << endl; cout << "Fin de temoigner\n"; } int main() { Carre c1(6.2); cout << "c1 : " << c1 << endl ; Carre c2; cout << "c2 : " << c2 << endl ; Carre c3 = c1; cout << "c3 : " << c3 << endl ; Carre c4(c2); cout << "c4 : " << c4 << endl ; int age ; cout << "Tapez l'age "; cin >> age; if (age >= 18) { Carre c5(17.0); cout << "c5 dans un bloc : " << c5 << endl ; cout << "Fin d'un bloc\n"; }; cout << "On vient de quitter le bloc\n"; temoigner(); cout << "On vient de terminer l'appel de la fonction temoigner()\n"; Carre * p = &c4; cout << "Le carre pointe par p : " << *p << endl ; delete p; continuer(); return 0; } /* Exécution : Appel au constructeur Ó un parametre c1 : Infos du carre : 6.2 Appel au constructeur sans parametre c2 : Infos du carre : 5.5 Appel au constructeur de recopie c3 : Infos du carre : 6.2 Appel au constructeur de recopie c4 : Infos du carre : 5.5 Tapez l'age 32 Appel au constructeur Ó un parametre c5 dans un bloc : Infos du carre : 17 Fin d'un bloc Appel du destructeur On vient de quitter le bloc Appel au constructeur sans parametre afficher c6 dans temoigner : Infos du carre : 5.5 Fin de temoigner Appel du destructeur On vient de terminer l'appel de la fonction temoigner() Le carre pointe par p : Infos du carre : 5.5 Appel du destructeur Appuyez sur une lettre suivie de Entree */