Implémentation du polymorphisme dynamique en C++

C++Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons implémenter le concept de polymorphisme en C++. Le polymorphisme est un concept du langage de programmation orienté objet où une seule fonction peut être utilisée de différentes manières. Il existe deux types de polymorphisme : le polymorphisme de temps de compilation ou polymorphisme statique et le polymorphisme d'exécution ou polymorphisme dynamique. Dans ce laboratoire, nous allons nous concentrer sur le polymorphisme d'exécution ou dynamique.

Créer un nouveau fichier main.cpp

Tout d'abord, nous allons créer un nouveau fichier C++ nommé main.cpp dans le répertoire ~/project :

cd ~/project
touch main.cpp

Ajoutez du code pour implémenter le polymorphisme

Dans cette étape, nous allons créer une classe nommée Shape. La classe Shape aura une fonction virtuelle nommée area(). Ensuite, nous créerons deux classes Rectangle et Triangle qui hériteront de la classe Shape et qui redéfiniront la fonction virtuelle area(). Une fois les classes créées, nous créerons un tableau d'objets de la classe Shape puis nous ferons une boucle sur le tableau pour appeler la fonction area() de chaque objet.

#include <iostream>
using namespace std;

class Shape {
    public:
        virtual float area() {
            return 0;
        }
};

class Rectangle: public Shape {
    public:
        float area() {
            cout << "Rectangle class area()" << endl;
            return 0;
        }
};

class Triangle: public Shape {
    public:
        float area() {
            cout << "Triangle class area()" << endl;
            return 0;
        }
};

int main() {
    Shape *shape;
    Rectangle rec;
    Triangle tri;

    shape = &rec;
    shape->area();

    shape = &tri;
    shape->area();

    return 0;
}

Compiler et exécuter le code

Dans cette étape, nous allons compiler et exécuter le code à l'aide des commandes suivantes :

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

La sortie du programme ci-dessus sera :

Rectangle class area()
Triangle class area()

Résumé

Dans ce laboratoire, nous avons appris à implémenter le concept de polymorphisme en C++. Nous avons créé une classe avec une fonction virtuelle nommée Shape. Ensuite, nous avons créé deux classes Rectangle et Triangle qui ont hérité de la classe Shape et ont redéfini la fonction virtuelle area(). Enfin, nous avons créé des objets des classes Rectangle et Triangle et avons appelé la fonction area() en utilisant l'objet de la classe de base Shape, ce qui a entraîné l'appel aux classes respectives.