Héritage simple 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, vous allez apprendre à démontrer le concept d'héritage simple en langage de programmation C++. Vous allez créer deux classes, une classe mère et une classe enfant, où la classe enfant (classe dérivée) hérite des caractéristiques (propriétés et méthodes) de la classe mère (classe de base ou super classe).


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/constructors("Constructors") cpp/OOPGroup -.-> cpp/inheritance("Inheritance") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/classes_objects -.-> lab-96223{{"Héritage simple en C++"}} cpp/class_methods -.-> lab-96223{{"Héritage simple en C++"}} cpp/constructors -.-> lab-96223{{"Héritage simple en C++"}} cpp/inheritance -.-> lab-96223{{"Héritage simple en C++"}} cpp/output -.-> lab-96223{{"Héritage simple en C++"}} cpp/user_input -.-> lab-96223{{"Héritage simple en C++"}} cpp/files -.-> lab-96223{{"Héritage simple en C++"}} cpp/code_formatting -.-> lab-96223{{"Héritage simple en C++"}} end

Créez le fichier main.cpp

Tout d'abord, créez un fichier main.cpp dans le répertoire ~/project en utilisant la commande suivante :

touch ~/project/main.cpp

Écrivez le code

Copiez et collez le code suivant dans votre fichier main.cpp :

#include <iostream>
// Inclure les bibliothèques requises

using namespace std;

// Déclaration d'une classe mère (classe de base) appelée "Shape"
class Shape {
    public:
        float area(float l, float b) { // Méthode pour calculer l'aire de la forme
            return (l * b);
        }

        float perimeter(float l, float b) { // Méthode pour calculer le périmètre de la forme
            return (2 * (l + b));
        }
};

// Déclaration d'une classe enfant (classe dérivée) appelée "Rectangle" qui dérive ou hérite de la classe Shape
class Rectangle: private Shape {
    private:
        float length,
        breadth;

    public:
        Rectangle(): length(0.0), breadth(0.0) {} // Constructeur par défaut du Rectangle

        void getDimensions() { // Méthode pour obtenir les dimensions du Rectangle à partir de l'utilisateur
            cout << "\nEntrez la longueur du Rectangle : ";
            cin >> length;

            cout << "\nEntrez la largeur du Rectangle : ";
            cin >> breadth;
        }

        // Méthode pour calculer le périmètre du Rectangle en utilisant la classe Shape
        float perimeter() {
            // Appelle la méthode perimeter() de la classe Shape et la renvoie.
            return Shape::perimeter(length, breadth);
        }

        // Méthode pour calculer l'aire du Rectangle en utilisant la classe Shape
        float area() {
            // Appelle la méthode area() de la classe Shape et la renvoie.
            return Shape::area(length, breadth);
        }
};

int main() {
    // Création d'un objet de la classe Rectangle
    Rectangle rect;

    // Message de bienvenue
    cout << "\n\nBienvenue dans le programme d'héritage simple!\n";

    // Message à l'utilisateur
    cout << "\nLa classe Rectangle est dérivée de la classe Shape.\n\n";

    // Obtenir les dimensions du Rectangle à partir de l'utilisateur
    rect.getDimensions();

    // Calculer le périmètre du Rectangle en utilisant la classe mère Shape et afficher la sortie
    cout << "\nPérimètre du Rectangle calculé en utilisant la classe mère Shape : " << rect.perimeter() << "\n";

    // Calculer l'aire du Rectangle en utilisant la classe mère Shape et afficher la sortie
    cout << "Aire du Rectangle calculée en utilisant la classe mère Shape : " << rect.area() << "\n\n";

    return 0;
}

Compilez et exécutez le code

Ensuite, compilez le code en utilisant la commande suivante :

g++ main.cpp -o main &&./main

Ensuite, exécutez le code en utilisant la commande suivante :

./main

Comprenez la sortie

Après avoir exécuté le programme, vous verrez la sortie suivante :

Welcome to Single Level Inheritance Program!

Rectangle class is derived from the Shape class.

Enter the length of the Rectangle: 5

Enter the breadth of the Rectangle: 10

Perimeter of the Rectangle computed using the parent Class Shape: 30
Area of the Rectangle computed using the parent Class Shape: 50

Le programme invite l'utilisateur à entrer la longueur et la largeur du rectangle. Après avoir obtenu les dimensions, il calcule le périmètre et l'aire en utilisant les fonctions perimeter() et area() de la classe mère Shape.

Sommaire

Félicitations! Vous avez réussi à écrire un programme C++ démontrant le concept d'héritage simple. Vous pouvez expérimenter avec différentes formes et la sortie reflétera exactement les calculs pour toute nouvelle classe dérivée.