Exercices corrigés C++ – Programmation Orientée Objet | Partie 3
Avec des exercices corrigés en C++, vous pratiquerez divers concepts du langage C++. Vous commencerez par des exercices C++ de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Exercice 1:
Écrire un programme C++ pour créer une classe appelée « Stock » avec une collection de produits et des méthodes pour ajouter et supprimer des produits, et pour vérifier si le stock est insuffisant.
Diagrame de classe:

#include <iostream> #include <string> using namespace std; // Définir la classe Produit class Produit { private: // Champ privé pour stocker le nom du produit string nom; // Champ privé pour stocker la quantité du produit int quantite; public: // Constructeur par défaut Produit() : nom(""), quantite(0) {} // Constructeur pour initialiser le nom et la quantité du produit Produit(string nom, int quantite) { // Affecter le paramètre nom au champ nom this->nom = nom; // Affecter le paramètre quantite au champ quantite this->quantite = quantite; } // Méthode pour obtenir le nom du produit string getNom() { return nom; // Retourner la valeur du champ nom } // Méthode pour obtenir la quantité du produit int getQuantite() { // Retourner la valeur du champ quantite return quantite; } }; // Définir la classe Stock class Stock { private: // Champ privé pour stocker une liste d'objets Produit Produit* produits; // Taille actuelle du tableau int taille; // Capacité maximale du tableau int capacite; public: // Constructeur pour initialiser le champ produits Stock(int capacite) : capacite(capacite), taille(0) { // Créer un tableau dynamique de produits produits = new Produit[capacite]; } // Destructeur pour libérer la mémoire ~Stock() { delete[] produits; // Libérer la mémoire allouée } // Méthode pour ajouter un produit à la liste des produits void addProduit(const Produit& produit) { if (taille < capacite) { // Ajouter le produit à la liste produits[taille++] = produit; } else { cout << "Stock plein, impossible d'ajouter le produit." << endl; } } // Méthode pour supprimer un produit de la liste des produits void removeProduit(const string& nom) { for (int i = 0; i < taille; i++) { if (produits[i].getNom() == nom) { // Décaler les produits suivants for (int j = i; j < taille - 1; j++) { produits[j] = produits[j + 1]; } taille--; // Réduire la taille cout << "Produit " << nom << " supprimé." << endl; return; } } cout << "Produit " << nom << " non trouvé." << endl; } // Méthode pour vérifier si les produits en stock sont // insuffisants void checkStock() { // Itérer dans la liste des produits for (int i = 0; i < taille; i++) { // Vérifier si la quantité du produit est inférieure ou // égale à 100 if (produits[i].getQuantite() <= 100) { // Afficher un message indiquant que le produit est // en rupture de stock cout << produits[i].getNom() << " est en rupture de stock. La quantité actuelle: " << produits[i].getQuantite() << endl; } } } }; // Définir la fonction Main int main() { // Créer une nouvelle instance de la classe Stock avec une // capacité de 10 Stock stock(10); // Créer de nouveaux objets Produit avec nom et quantité Produit p1("Souris", 300); Produit p2("Clavier", 70); Produit p3("Tablette", 40); cout << "Ajouter trois produits en stock:" << endl; stock.addProduit(p1); // Ajouter produit 1 stock.addProduit(p2); // Ajouter produit 2 stock.addProduit(p3); // Ajouter produit 3 cout << "\nVérifier la disponibilité des stocks:" << endl; // Vérifier et afficher les produits dont le stock est // insuffisant stock.checkStock(); cout << "\nSupprimer la tablette du stock!" << endl; // Supprimer le produit Tablette du stock stock.removeProduit("Tablette"); cout<<"\nVérifier à nouveau la disponibilité des stocks:"<<endl; // Vérifier et afficher les produits dont le stock est // insuffisant stock.checkStock(); return 0; // Fin du programme }
Sortie:
Ajouter trois produits en stock: Vérifier la disponibilité des stocks: Clavier est en rupture de stock. La quantité actuelle: 70 Tablette est en rupture de stock. La quantité actuelle: 40 Supprimer la tablette du stock! Vérifier à nouveau la disponibilité des stocks: Clavier est en rupture de stock. La quantité actuelle: 70
Exercice 2:
Écrivez un programme C++ pour créer une classe appelée « Ecole » avec des attributs pour les étudiants, les enseignants et les classes, et des méthodes pour ajouter et supprimer des étudiants et des enseignants, et pour créer des classes (cours).
Diagrame de classe:

#include <iostream> #include <string> using namespace std; // Définir la classe Etudiant class Etudiant { private: string nom; int age; public: // Constructeur pour initialiser le nom et l'âge de l'étudiant Etudiant(string nom, int age) : nom(nom), age(age) {} // Getter pour obtenir le nom string getNom() { return nom; } // Getter pour obtenir l'âge int getAge() { return age; } }; // Définir la classe Enseignant class Enseignant { private: string nom; string matiere; public: // Constructeur pour initialiser le nom et la matière de // l'enseignant Enseignant(string nom, string matiere) : nom(nom), matiere(matiere) {} // Getter pour obtenir le nom de l'enseignant string getNom() { return nom; } // Getter pour obtenir la matière de l'enseignant string getMatiere() { return matiere; } }; // Définir la classe Classe class Classe { private: string nomClasse; Enseignant enseignant; // Tableau d'étudiants de taille fixe Etudiant* etudiants[4]; int nbEtudiants; public: // Constructeur pour initialiser la classe et son enseignant Classe(string nomClasse, Enseignant enseignant) : nomClasse(nomClasse), enseignant(enseignant), nbEtudiants(0) {} // Ajouter un étudiant à la classe void addEtudiant(Etudiant* etudiant) { if (nbEtudiants < 4) { etudiants[nbEtudiants++] = etudiant; } else { cout << "La classe est pleine !" << endl; } } // Obtenir le nom de la classe string getNomClasse() { return nomClasse; } // Obtenir l'enseignant Enseignant getEnseignant() { return enseignant; } // Obtenir le nombre d'étudiants int getNbEtudiants() { return nbEtudiants; } }; // Définir la classe Ecole class Ecole { private: // Tableau d'étudiants de taille fixe Etudiant* etudiants[10]; // Tableau d'enseignants de taille fixe Enseignant* enseignants[5]; // Tableau de classes de taille fixe Classe* classes[3]; int nbEtudiants; int nbEnseignants; int nbClasses; public: // Constructeur pour initialiser l'école Ecole() : nbEtudiants(0), nbEnseignants(0), nbClasses(0) {} // Ajouter un étudiant void addEtudiant(Etudiant* etudiant) { if (nbEtudiants < 10) { etudiants[nbEtudiants++] = etudiant; } else { cout << "L'école est pleine d'étudiants !" << endl; } } // Ajouter un enseignant void addEnseignant(Enseignant* enseignant) { if (nbEnseignants < 5) { enseignants[nbEnseignants++] = enseignant; } else { cout << "L'école est pleine d'enseignants !" << endl; } } // Ajouter une classe void addClasse(Classe* classe) { if (nbClasses < 3) { classes[nbClasses++] = classe; } else { cout << "L'école est pleine de classes !" << endl; } } // Supprimer un étudiant void removeEtudiant(Etudiant* etudiant) { for (int i = 0; i < nbEtudiants; i++) { if (etudiants[i] == etudiant) { for (int j = i; j < nbEtudiants - 1; j++) { etudiants[j] = etudiants[j + 1]; } nbEtudiants--; break; } } } // Supprimer un enseignant void removeEnseignant(Enseignant* enseignant) { for (int i = 0; i < nbEnseignants; i++) { if (enseignants[i] == enseignant) { for (int j = i; j < nbEnseignants - 1; j++) { enseignants[j] = enseignants[j + 1]; } nbEnseignants--; break; } } } // Supprimer une classe void removeClasse(Classe* classe) { for (int i = 0; i < nbClasses; i++) { if (classes[i] == classe) { for (int j = i; j < nbClasses - 1; j++) { classes[j] = classes[j + 1]; } nbClasses--; break; } } } // Obtenir le nombre d'étudiants int getNbEtudiants() { return nbEtudiants; } // Obtenir le nombre d'enseignants int getNbEnseignants() { return nbEnseignants; } // Obtenir le nombre de classes int getNbClasses() { return nbClasses; } }; // Fonction principale int main() { // Créer une nouvelle instance de la classe Ecole Ecole ecole; // Créer des objets Etudiant avec nom et âge Etudiant et1("Alex Babtise", 20); Etudiant et2("Bob Firok", 25); Etudiant et3("Emily Taylor", 22); Etudiant et4("Ali Binani", 23); // Ajouter les étudiants à l'école ecole.addEtudiant(&et1); ecole.addEtudiant(&et2); ecole.addEtudiant(&et3); ecole.addEtudiant(&et4); // Créer des objets Enseignant avec nom et matière Enseignant es1("Yohan Sinor", "Math"); Enseignant es2("Thomas Fiza", "Anglais"); Enseignant es3("Olivier Bibo", "Science"); // Ajouter les enseignants à l'école ecole.addEnseignant(&es1); ecole.addEnseignant(&es2); ecole.addEnseignant(&es3); // Créer des objets Classe et ajouter des étudiants Classe classMath("Mathematics", es1); classMath.addEtudiant(&et1); classMath.addEtudiant(&et2); classMath.addEtudiant(&et3); classMath.addEtudiant(&et4); Classe classAnglais("Anglais", es2); classAnglais.addEtudiant(&et1); classAnglais.addEtudiant(&et2); classAnglais.addEtudiant(&et3); Classe classScience("Science", es3); classScience.addEtudiant(&et1); classScience.addEtudiant(&et2); classScience.addEtudiant(&et3); classScience.addEtudiant(&et4); // Ajouter les classes à l'école ecole.addClasse(&classMath); ecole.addClasse(&classAnglais); ecole.addClasse(&classScience); // Afficher les informations sur l'école cout << "Informations sur l'école:" << endl; cout << "Nombre d'étudiants: " << ecole.getNbEtudiants() << endl; cout << "Nombre d'enseignants: " << ecole.getNbEnseignants() << endl; cout << "Nombre de classes: " << ecole.getNbClasses() << endl << endl; // Afficher les informations sur les cours de mathématiques cout << "Informations sur les cours de mathématiques:" << endl; cout << "Nom de la classe: " << classMath.getNomClasse() << endl; cout << "Enseignant: " << classMath.getEnseignant().getNom() << endl; cout << "Nombre d'étudiants: " << classMath.getNbEtudiants() << endl << endl; // Afficher les informations sur les cours d'anglais cout << "Informations sur les cours d'anglais:" << endl; cout << "Nom de la classe: " << classAnglais.getNomClasse() << endl; cout << "Enseignant: " << classAnglais.getEnseignant().getNom() << endl; cout << "Nombre d'étudiants: " << classAnglais.getNbEtudiants() << endl << endl; // Afficher les informations sur les cours de sciences cout << "Informations sur les cours de sciences:" << endl; cout << "Nom de la classe: " << classScience.getNomClasse() << endl; cout << "Enseignant: " << classScience.getEnseignant().getNom() << endl; cout << "Nombre d'étudiants: " << classScience.getNbEtudiants() << endl << endl; // Supprimer un étudiant, un enseignant et une classe de l'école ecole.removeEtudiant(&et1); ecole.removeEnseignant(&es2); ecole.removeClasse(&classMath); // Afficher les informations mises à jour sur l'école après suppression cout << "Informations sur l'école après suppression d'un élève, d'un enseignant et d'une classe:" << endl; cout << "Nombre d'étudiants: " << ecole.getNbEtudiants() << endl; cout << "Nombre d'enseignants: " << ecole.getNbEnseignants() << endl; cout << "Nombre de classes: " << ecole.getNbClasses() << endl; return 0; }
Sortie:
Informations sur l'école: Nombre d'étudiants: 4 Nombre d'enseignants: 3 Nombre de classes: 3 Informations sur les cours de mathématiques: Nom de Class: Mathematics Enseignant: Yohan Sinor Nombre d'étudiants: 4 Informations sur les cours d'anglais: Nom de Class: Anglais Enseignant: Thomas Fiza Nombre d'étudiants: 3 Informations sur les cours de sciences: Nom de Class: Science Enseignant: Olivier Bibo Nombre d'étudiants: 4 Informations sur l'école après suppression d'un élève, d'un enseignant et d'une classe: Nombre d'étudiants: 3 Nombre d'enseignants: 2 Nombre de classes: 2
Exercice 3:
Écrire un programme C++ pour créer une classe appelée « BiblioMusicale » avec une collection de chansons et des méthodes pour ajouter et supprimer des chansons, et pour jouer une chanson au hasard.
Diagrame de classe:

#include <iostream> #include <string> #include <cstdlib> // Pour rand() #include <ctime> // Pour time() using namespace std; // Définir la taille maximale de la bibliothèque musicale // Vous pouvez ajuster cette valeur en fonction de vos besoins const int MAX_CHANSONS = 100; // Définir la classe Chanson class Chanson { private: // Champs privés pour stocker le titre et l'artiste de la chanson string title; string artist; public: // Constructeur pour initialiser les champs titre et artiste Chanson(string title = "", string artist = "") { this->title = title; this->artist = artist; } // Méthode Getter pour récupérer le titre de la chanson string getTitre() const { return title; } // Méthode pour modifier le titre de la chanson void setTitre(string title) { this->title = title; } // Méthode Getter pour récupérer l'artiste de la chanson string getArtist() const { return artist; } // Méthode pour modifier le nom de l'artiste de la chanson void setArtist(string artist) { this->artist = artist; } }; // Définir la classe BiblioMusicale class BiblioMusicale { private: // Tableau statique pour stocker les chansons Chanson chansons[MAX_CHANSONS]; // Pour suivre le nombre actuel de chansons dans la bibliothèque int nbChansons; public: // Constructeur pour initialiser la bibliothèque musicale BiblioMusicale() { // Initialiser le nombre de chansons à 0 nbChansons = 0; } // Méthode pour ajouter une chanson à la bibliothèque void addChanson(const Chanson &song) { if (nbChansons < MAX_CHANSONS) { chansons[nbChansons++] = song; } else { cout << "La bibliothèque musicale est pleine !" << endl; } } // Méthode pour supprimer une chanson de la bibliothèque void removeChanson(const Chanson &song) { int indexToRemove = -1; for (int i = 0; i < nbChansons; i++) { if (chansons[i].getTitre() == song.getTitre() && chansons[i].getArtist() == song.getArtist()) { indexToRemove = i; break; } } if (indexToRemove != -1) { for (int i = indexToRemove; i < nbChansons - 1; i++) { // Décaler les chansons chansons[i] = chansons[i + 1]; } nbChansons--; // Réduire le nombre de chansons } else { cout<<"Chanson non trouvée dans la bibliothèque."<<endl; } } // Méthode pour obtenir la liste de toutes les chansons de la // bibliothèque void getChansons() const { for (int i = 0; i < nbChansons; i++) { cout << chansons[i].getTitre() << " par " << chansons[i].getArtist() << endl; } } // Méthode pour lire une chanson aléatoire de la bibliothèque void lireChansonAleatoire() const { if (nbChansons == 0) { cout << "Il n'y a pas de chansons à lire." << endl; return; } // Initialiser le générateur aléatoire srand(time(0)); // Générer un index aléatoire int index = rand() % nbChansons; cout << "Lire: " << chansons[index].getTitre() << " par " << chansons[index].getArtist() << endl; } }; // Définir la fonction Main int main() { // Créer une nouvelle instance de la classe BiblioMusicale BiblioMusicale biblio; // Ajouter des chansons à la bibliothèque musicale biblio.addChanson(Chanson("Un clair de lune", "Jean Chérasse")); biblio.addChanson(Chanson("Cadet Rousselle", "André Hunebelle")); biblio.addChanson(Chanson("Help!", "Richard Lester")); biblio.addChanson(Chanson("Baisers volés", "François Truffaut")); biblio.addChanson(Chanson("Je t'aime", "Serge Gainsbourg")); biblio.addChanson(Chanson("Staying Alive", "Michel Blanc")); // Afficher toutes les chansons de la bibliothèque musicale cout << "Toutes les chansons:" << endl; biblio.getChansons(); // Lire et afficher trois fois une chanson choisie au hasard dans // la bibliothèque cout << "\nLecture d'une chanson aléatoire:" << endl; biblio.lireChansonAleatoire(); cout << endl; biblio.lireChansonAleatoire(); cout << endl; biblio.lireChansonAleatoire(); return 0; }
Sortie:
Toutes les chansons: Un clair de lune par Jean Chérasse Cadet Rousselle par André Hunebelle Help! par Richard Lester Baisers volés par François Truffaut Je t'aime par Serge Gainsbourg Staying Alive par Michel Blanc Lecture d'une chanson aléatoire: Lire: Help! par Richard Lester Lire: Baisers volés par François Truffaut Lire: Help! par Richard Lester
Exercice 4:
Écrivez un programme C++ pour créer une classe appelée 'Forme' avec des méthodes abstraites pour calculer la surface et le périmètre, et des sous-classes pour le 'Rectangle', le 'Cercle' et le 'Triangle'.
Diagrame de classe:

#include <iostream> #include <cmath> // Pour la fonction sqrt et M_PI // Définir la classe Forme comme une classe abstraite class Forme { public: // Méthode abstraite pour récupérer la surface de la forme // Cette méthode doit être implémentée par toute sous-classe de // Forme virtual double getSurface() = 0; // Méthode abstraite permettant d'obtenir le périmètre de la // forme // Cette méthode doit être implémentée par toute sous-classe de // Forme virtual double getPerimeter() = 0; }; // Définir la classe Rectangle, qui hérite de la classe Forme class Rectangle : public Forme { private: // Champs privés pour stocker la longueur et la largeur du // rectangle double longueur; double largeur; public: // Constructeur pour initialiser la longueur et la largeur du // rectangle Rectangle(double longueur, double largeur) { // Définir le champ longueur à la longueur fournie this->longueur = longueur; // Définir le champ largeur à la largeur fournie this->largeur = largeur; } // Méthode pour calculer et renvoyer la surface du rectangle double getSurface() override { // Calculer la surface en multipliant la longueur et la // largeur return longueur * largeur; } // Méthode pour calculer et renvoyer le périmètre du rectangle double getPerimeter() override { // Calculer le périmètre à l'aide de la formule 2 * (longueur // + largeur) return 2 * (longueur + largeur); } }; // Définir la classe Cercle, qui hérite de la classe Forme class Cercle : public Forme { private: // Champ privé pour stocker le rayon du cercle double rayon; public: // Constructeur pour initialiser le rayon du cercle Cercle(double rayon) { // Attribuer au champ rayon le rayon fourni this->rayon = rayon; } // Méthode pour calculer et renvoyer la surface du cercle double getSurface() override { // Calculer la surface en utilisant la formule π * rayon^2 return M_PI * rayon * rayon; } // Méthode pour calculer le périmètre du cercle double getPerimeter() override { // Calculer le périmètre en utilisant la formule 2*π*rayon return 2 * M_PI * rayon; } }; // Définir la classe Triangle, qui hérite de la classe Forme class Triangle : public Forme { private: // Champs privés pour stocker les côtés du triangle double c1; double c2; double c3; public: // Constructeur pour initialiser les côtés du triangle Triangle(double c1, double c2, double c3) { this->c1 = c1; this->c2 = c2; this->c3 = c3; } // Méthode pour calculer et renvoyer la surface du triangle double getSurface() override { // Calculer le semi-périmètre double s = (c1 + c2 + c3) / 2; // Calculer la surface à l'aide de la formule de Heron return sqrt(s * (s - c1) * (s - c2) * (s - c3)); } // Méthode pour calculer et renvoyer le périmètre du triangle double getPerimeter() override { // Calculer le périmètre en additionnant les côtés return c1 + c2 + c3; } }; // Définir la fonction Main int main() { // Créer un rectangle de longueur 15 et de largeur 20 Forme* rectangle = new Rectangle(15, 20); // Créer un cercle de rayon 5 Forme* circle = new Cercle(5); // Créer un triangle dont les côtés sont 5, 7 et 9 Forme* triangle = new Triangle(5, 7, 9); std::cout << "\nSurface et périmètre de différentes formes:"; // Afficher les détails et calculs du rectangle std::cout << "\nRectangle:"; std::cout << "\nSurface: " << rectangle->getSurface(); std::cout << "\nPérimètre: " << rectangle->getPerimeter(); // Afficher les détails et calculs du cercle std::cout << "\n\nCercle:"; std::cout << "\nSurface: " << circle->getSurface(); std::cout << "\nPérimètre: " << circle->getPerimeter(); // Afficher les détails et calculs du triangle std::cout << "\n\nTriangle:"; std::cout << "\nSurface: " << triangle->getSurface(); std::cout << "\nPérimètre: " << triangle->getPerimeter(); // Libérer la mémoire allouée delete rectangle; delete circle; delete triangle; return 0; }
Sortie:
Surface et périmètre de différentes formes: Rectangle: Surface: 300.0 Périmètre: 70.0 Cercle: Surface: 78.53981633974483 Périmètre: 31.41592653589793 Triangle: Surface: 17.41228014936585 Périmètre: 21.0
Exercice 5:
Écrire un programme C++ pour créer une classe appelée « Film » avec des attributs pour le titre, le directeur, les acteurs et les avis, et des méthodes pour ajouter et récupérer des avis.
Diagrame de classe:

#include <iostream> #include <string> // Définir la classe Avis pour représenter un avis sur un film class Avis { private: // Texte de l'avis std::string textAvis; // Nom de la personne ayant donné l'avis std::string nomAvis; // Note donnée par l'utilisateur double note; public: // Constructeur par défaut Avis() : textAvis(""), nomAvis(""), note(0.0) {} // Constructeur avec paramètres pour initialiser les champs Avis(const std::string& textAvis, const std::string& nomAvis, double note) { // Initialiser le texte de l'avis this->textAvis = textAvis; // Initialiser le nom de l'avis this->nomAvis = nomAvis; // Initialiser la note this->note = note; } // Méthode pour récupérer le texte de l'avis std::string getTextAvis() const { return textAvis; // Retourner le texte de l'avis } // Méthode pour récupérer le nom de l'avis std::string getNomAvis() const { return nomAvis; // Retourner le nom de l'avis } // Méthode pour récupérer la note double getNote() const { return note; // Retourner la note } }; // Définir la classe Film pour représenter un film class Film { private: // Titre du film std::string titre; // Nom du directeur std::string directeur; // Tableau pour stocker les acteurs std::string acteurs[10]; // Nombre d'acteurs dans le film int nombreActeurs; // Pointeur vers un tableau d'avis Avis* avis; // Nombre d'avis donnés int nombreAvis; // Taille maximale du tableau d'avis int tailleAvis; public: // Constructeur pour initialiser le film avec son titre, // directeur et acteurs Film(const std::string& titre, const std::string& directeur, const std::string acteurs[], int tailleActeurs) : titre(titre), directeur(directeur), nombreActeurs(tailleActeurs), nombreAvis(0), tailleAvis(10) { // Copier les acteurs fournis dans le tableau d'acteurs for (int i = 0; i < tailleActeurs; i++) { // Initialiser le tableau d'acteurs this->acteurs[i] = acteurs[i]; } // Allouer un tableau pour les avis avis = new Avis[tailleAvis]; } // Méthode pour ajouter un avis à la liste des avis void addAvis(const Avis& a) { // Vérifier si l'espace est disponible if (nombreAvis < tailleAvis) { avis[nombreAvis] = a; // Ajouter l'avis nombreAvis++; // Incrémenter le nombre d'avis } } // Méthode pour récupérer les avis Avis* getAvis() const { return avis; // Retourner le tableau d'avis } // Méthode pour récupérer le titre du film std::string getTitre() const { return titre; // Retourner le titre } // Méthode pour récupérer le directeur du film std::string getDirecteur() const { return directeur; // Retourner le directeur } // Méthode pour récupérer les acteurs du film std::string* getActeurs() { return acteurs; // Retourner le tableau d'acteurs } // Méthode pour obtenir le nombre d'avis int getNombreAvis() const { return nombreAvis; // Retourner le nombre d'avis } // Destructeur pour libérer la mémoire allouée ~Film() { delete[] avis; // Libérer le tableau d'avis } }; // Définir la fonction Main int main() { // Déclarer et initialiser un tableau d'acteurs std::string acteurs[] = {"Pierre Pelletier", "Pierre Mondy"}; // Créer un objet Film avec un titre, un directeur et une liste // d'acteurs Film f1("La Roue", "Jean Servais", acteurs, 2); // Créer plusieurs objets d'avis pour le film Avis avis1("Excellent film!", "Alex Babtise", 5.0); Avis avis2("Fortement recommandé!", "Jean Zino", 4.5); Avis avis3("Un film magnifique", "Bob Polib", 4.0); // Ajouter les avis au film f1.addAvis(avis1); f1.addAvis(avis2); f1.addAvis(avis3); // Afficher les avis pour le film std::cout << "\nAvis pour '"<<f1.getTitre()<<"':" << std::endl; // Boucle pour afficher chaque avis for (int i = 0; i < f1.getNombreAvis(); i++) { // Récupérer l'avis à l'index i Avis a = f1.getAvis()[i]; // Afficher l'avis std::cout << a.getTextAvis() << " par " << a.getNomAvis() << " - " << a.getNote() << std::endl; } return 0; // Fin du programme }
Sortie:
Avis pour 'La Roue': Excellent film! par Alex Babtise - 5.0 Fortement recommandé! par Jean Zino - 4.5 Un film magnifique par Bob Polib - 4.0
Éditeur de code C++: Testez votre code en ligne!
Exercices corrigés C++ - Programmation Orientée Objet | Partie 2
Exercices corrigés C++ - Programmation Orientée Objet | Partie 3
Exercices corrigés C++ - Programmation Orientée Objet | Partie 4
Exercices corrigés C++ - Programmation Orientée Objet | Partie 5
Exercices corrigés C++ - Programmation Orientée Objet | Partie 6

- Exercice C++ Corrigé pour Débutant | Partie 1
- Exercice C++ Corrigé pour Débutant | Partie 2
- Exercice C++ Corrigé pour Débutant | Partie 3
- Exercice C++ Corrigé pour Débutant | Partie 4
- Exercice C++ Corrigé pour Débutant | Partie 5
- Exercice C++ Corrigé pour Débutant | Partie 6
- Exercice C++ Corrigé pour Débutant | Partie 7
- Exercice C++ Corrigé pour Débutant | Partie 8
- Exercice C++ Corrigé pour Débutant | Partie 9
- Exercice C++ Corrigé pour Débutant | Partie 10
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 1
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 2
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 3
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 4
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 5
- Exercices corrigés C++ – Programmation Orientée Objet | Partie 6
- Exercices corrigés C++ les classes et l’héritage – Partie 1
- Exercices corrigés C++ les classes et l’héritage – Partie 2
- Exercice C++ Corrigé – Partie 1