Programme d'héritage hiérarchique en C++

C++C++Beginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons démontrer comment créer un programme C++ qui met en évidence le concept d'héritage hiérarchique. Nous allons écrire un programme simple utilisant des classes et des objets pour mieux comprendre le sujet.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/OOPGroup -.-> cpp/classes_objects("Classes/Objects") cpp/OOPGroup -.-> cpp/class_methods("Class Methods") cpp/OOPGroup -.-> cpp/access_specifiers("Access Specifiers") cpp/OOPGroup -.-> cpp/encapsulation("Encapsulation") cpp/OOPGroup -.-> cpp/inheritance("Inheritance") cpp/OOPGroup -.-> cpp/polymorphism("Polymorphism") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/classes_objects -.-> lab-96145{{"Programme d'héritage hiérarchique en C++"}} cpp/class_methods -.-> lab-96145{{"Programme d'héritage hiérarchique en C++"}} cpp/access_specifiers -.-> lab-96145{{"Programme d'héritage hiérarchique en C++"}} cpp/encapsulation -.-> lab-96145{{"Programme d'héritage hiérarchique en C++"}} cpp/inheritance -.-> lab-96145{{"Programme d'héritage hiérarchique en C++"}} cpp/polymorphism -.-> lab-96145{{"Programme d'héritage hiérarchique en C++"}} cpp/output -.-> lab-96145{{"Programme d'héritage hiérarchique en C++"}} cpp/files -.-> lab-96145{{"Programme d'héritage hiérarchique en C++"}} cpp/code_formatting -.-> lab-96145{{"Programme d'héritage hiérarchique en C++"}} end

Créez le fichier main.cpp

Nous allons créer un nouveau fichier nommé main.cpp dans le répertoire ~/project en utilisant la commande suivante :

touch ~/project/main.cpp

Écrivez la classe Shape

La première chose que nous devons faire est de définir la classe Shape, qui servira de classe mère pour les classes Rectangle et Triangle. Dans cette classe, nous allons créer deux variables membres protégées width et height qui stockeront la largeur et la hauteur de la forme.

Ensuite, nous allons créer une fonction membre publique setDimensions qui définira ces dimensions et affichera un message dans la console.

Voici le bloc de code pour la classe Shape qui devrait être ajouté à main.cpp :

#include <iostream>
using namespace std;

class Shape {
    // Les variables membres protégées ne sont accessibles que dans la classe et ses classes descendants
    protected:
        float width, height;
    // Les membres publics sont accessibles partout
    public:
        void setDimensions(float w, float h) {
            cout << "Setting the Dimensions using the parent Class: Shape\n";
            cout << "The dimensions are: " << w << " and " << h << "\n\n";

            width = w;
            height = h;
        }
};

Écrivez la classe Rectangle

Ensuite, nous allons créer la classe Rectangle qui héritera de la classe Shape. Ici, nous utiliserons une technique de redéfinition de méthode pour calculer l'aire du rectangle à l'aide de la fonction area().

Voici le bloc de code pour la classe Rectangle qui devrait être ajouté à main.cpp :

class Rectangle: public Shape {
    //Redéfinition de méthode
    public:
        float area() {
            return (width * height);
        }
};

Écrivez la classe Triangle

Maintenant, créons la classe Triangle qui héritera également de la classe Shape. Ici, nous utiliserons la redéfinition de méthode pour calculer l'aire du triangle à l'aide de la fonction area().

Voici le bloc de code pour la classe Triangle qui devrait être ajouté à main.cpp :

class Triangle: public Shape {
    //Redéfinition de méthode
    public:
        float area() {
            return (width * height / 2);
        }
};

Écrivez la fonction main()

Maintenant, il est temps d'écrire la fonction main(). Ici, nous allons créer des objets pour les classes Rectangle et Triangle et définir leurs dimensions.

Nous utiliserons ensuite la fonction area() pour calculer l'aire du Rectangle et du Triangle à l'aide de leurs objets respectifs.

Voici le bloc de code pour la fonction main() qui devrait être ajouté à main.cpp :

int main() {

    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << "===== Program to demonstrate the concept of Hierarchical Inheritance in CPP =====\n\n";

    //Déclaration des objets de classe pour accéder aux membres de la classe
    Rectangle rectangle;
    Triangle triangle;

    rectangle.setDimensions(5, 3);
    triangle.setDimensions(2, 5);

    cout << "\nArea of the Rectangle computed using Rectangle Class is : " << rectangle.area() << "\n\n\n";
    cout << "Area of the Triangle computed using Triangle Class is: " << triangle.area();

    cout << "\n\n\n";

    return 0;
}

Compilez et exécutez le programme

Pour exécuter le programme dans le terminal, d'abord, accédez à ~/projet. Ensuite, tapez la commande suivante pour compiler le fichier main.cpp :

g++ main.cpp -o main

Après cela, exécutez le programme avec la commande suivante :

./main

Vous devriez voir la sortie sur le terminal.

Sommaire

Dans ce laboratoire, nous avons appris à démontrer le concept d'héritage hiérarchique en CPP. Nous avons créé la classe Shape, qui était la classe mère de Rectangle et Triangle. Nous avons ensuite créé des objets pour chacune des classes enfants et utilisé la redéfinition de méthode pour trouver l'aire d'un rectangle et d'un triangle.

Espérons que ce laboratoire vous a aidé à mieux comprendre le fonctionnement de l'héritage hiérarchique en C++. Pour toute question, n'hésitez pas à nous contacter via la section des commentaires ci-dessous.