Programmation Orientée Objet Test d'évaluation Exercice 1 1. Déclarer une class
Programmation Orientée Objet Test d'évaluation Exercice 1 1. Déclarer une classe Animal à 2 champs : un entier age et une chaine de caractères nom_du_cri. Veiller à déclarer les champs protected. class Animal { protected: int age; string nom_du_cri; }; 2. Ajouter un constructeur par défaut, un constructeur à 2 paramètres et un destructeur. 3. Définir (implémenter) les méthodes déclarées précédemment. class Animal { protected: int age; string nom_du_cri; public: Animal() { age = 3; nom_du_cri = "miolement"; } Animal(int a, string ncri) { age = a; nom_du_cri = ncri; } ~Animal(){ } }; 4. Déclarer et définir une méthode vieillir qui augmente d'une unité l'âge du chien et le retourne. // déclaration dans class Animal class Animal{ //... public : int vieillir() ; }; // Implémentation int Animal ::vieillir() { age++ ; return age; } 5. Déclarer et définir une méthode presenter qui affiche l'age et le type de cri de l'animal : aboiement, henissement, roucoulement, … sous cette forme : « L'animal a age ans et son cri s'appelle nom_du_cri » // Déclaration dans class Animal class Animal{ //... public : void presenter() ; }; // Définition void Animal ::presenter() { cout << "L'animal a " << age << " ans et son cri s'appelle " << nom_du_cri << endl; } Exercice 2 Définir maintenant une classe fille Chien qui hérite publiquement de la classe mère déclarer dans le 1er exercice. On suppose ici que l'aboiement du chien dégage différentes sonorités : « waaf », « woof » ou « grrrh », … 1. Ajouter à la classe fille un champ cri, un constructeur paramétrique, un constructeur par défaut et un destructeur. Le champ nom_du_cri est initialisé à « aboie » dans la liste du constructeur paramétrique. class Chien: public Animal { protected: string cri; public: Chien(int a, string cr, string ncri="aboie"):Animal(a, ncri){ cri = cr; } Chien():Animal(6, "aboie"){ cri = "waaf"; } ~Chien(){ } }; 2. Redéfinir dans cette classe fille la méthode presenter. Elle présentera l'animal différemment suivant son âge : S'il est jeune (moins de 6 ans) : «Le chien a age ans et aboie : cri cri cri » Sinon « Le chien a age et aboie cri » //Déclaration dans class Chien class Chien : public Animal{ //... public : void presenter() ; }; //Implémentation void Chien::presenter() { if ( age<6 ) cout << "L'animal a " << age << " ans et aboie " << cri <<" "<<cri<<" "<<cri<< endl; else cout << "L'animal a " << age << " ans et aboie " << cri << endl; } 3. Dans votre main, définir un objet de la classe Chien et lui appliquer la méthode presenter. Constater quelle méthode est appelée. Chien boby(5, "grrrh", "aboie"); // ou bien Chien boby ; boby.presenter(); // la méthode appelée est celle de la classe fille Chien. On obtient comme résultat à l'écran : L'animal a 5 ans et aboie grrrh grrrh grrrh 4. Essayer ensuite avec Animal::presenter. boby.Animal::presenter(); // La méthode appelée est celle de la classe Mère Animal. On obtient à l'écran L'animal a 5 ans et son cri s'appelle aboie 5. Définir de manière dynamique un objet animal chouchou et un objet chien rex. Chien *rex; rex = new Chien(7, "woof"); // ou rex = new Chien ; ou encore rex = new Chien(7, "woof", "aboie") ; Animal *chouchou ; chouchou = new Animal; // ou bien chouchou = new Animal(8, "henissement") ; 6. Appeler la fonction vieillir à partir des objets chouchou et rex. int age_rex, age_chouchou ; age_rex = rex->vieillir(); age_chouchou = chouchou->vieillir(); uploads/s3/ poo-test-sic-corrige.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/DZhJvQ2ZtSJjRoWFSHicpro3Ifsne8jS8NrcZ7hDy1HmlDMh4AMDIlzSGcfY9lDkegUjVoWqOJzcFEUIqShGpsF9.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/ccOPGBTDgloUWPyjdKpiKek6rIWJxKasOFW2IaSx6UCJTSRRee69qCQd2izNY5ECW7Coydu6UJ29Vd8yV15YeFG5.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/353nrgGc18HeDgkBRpTzDr8501GqBG5eh29n4JIpRLKlsdeGK7OzhsHyTO6MCnFEC2WV1TvYOzUwK8oLZSyiNf2D.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/d5eoM4oBDXZVgxA3eMw6a5Db754LAPGWt0kCitGKfjTFw8iLIjWS4yq1BT1UcLboEmOlOWhQ5ad7mnAnIJMKyFIN.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/HoUmMmkOG86NKuDNELdZR5MGhsnOkk7yQQlVgXuGmmsFuqZfdOWQRWlPsXDR78QNXaAiHIlkapfZP9s5KDXmlMji.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/yMnEf35dRAZzbr35ffPbtpH8MjzrUvOYWaj2TVYb5ypmOHspja3tdOnAJcEFiCTGIDygPGeiCB3fM8znydVfuv9C.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/fTZaeozKLWdS5xvAm0I40fW6wN6TfNJLVADSXA5tZboO4M3CP4T6zjccH0UtwFto7y1STHRjX9O0b9WQ0Y02hu2V.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/aCl4mR8Ntv46xMPgwbf4Rcluhh6OX6Qa0rx7HFeE9UEe83EbbziKEZX2oXMzyfoNs3v6ptSqjtN9LpPkhKAAQisM.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/BOAzE2sU5TmLsNhpHSUgs3kgPhJrbSWIP1XvLYtZU79I4ng7YAKmwnBEF8oj4wTGt7UP4PXeoHGc5Byu2HWIROUE.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/086KGyDZhiXNHatQPWLMz9JE0mdPhs68ZX0dhdPmW1PRRD0NLwd6D3Wj31gPfQ3AJvVU5qRbcpLzpBRGx2HQuiHM.png)
-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 04, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.1021MB