Surcharge d'opérateur + en C++

C++Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous allez apprendre à démontrer le concept de surcharge d'opérateur + en langage de programmation C++. La surcharge d'opérateur est une fonctionnalité en C++ qui permet à un seul opérateur ou symbole d'être utilisé avec différents sens, selon le contexte dans lequel il est utilisé. Dans ce laboratoire, nous allons montrer comment additionner deux objets Cuboid à l'aide de l'opérateur +.

Créer un nouveau fichier C++

Créez un nouveau fichier C++ nommé main.cpp dans le répertoire ~/project.

cd ~/project
touch main.cpp

Écrire du code pour démontrer la surcharge d'opérateur +

Ajoutez le code suivant à main.cpp pour créer une classe nommée Cuboid qui représente un solide rectangulaire tridimensionnel :

#include <iostream>

using namespace std;

//définition de la classe Cuboid pour démontrer le concept de surcharge d'opérateur Plus en CPP
class Cuboid {
    //Déclaration des variables membres de la classe en tant que publiques pour y accéder depuis l'extérieur de la classe
    public:
        double length; // Longueur du Cuboid
        double breadth; // Largeur du Cuboid
        double height; // Hauteur du Cuboid

        public:
        double getVolume(void) {
            return length * breadth * height;
        }
        void setLength(double l) {
            length = l;
        }

        void setBreadth(double b) {
            breadth = b;
        }

        void setHeight(double h) {
            height = h;
        }

        // Surcharge de l'opérateur + pour additionner deux objets Cuboid l'un avec l'autre.
        Cuboid operator + (const Cuboid & c) {
            Cuboid cuboid;
            cuboid.length = this -> length + c.length;
            cuboid.breadth = this -> breadth + c.breadth;
            cuboid.height = this -> height + c.height;
            return cuboid;
        }
};

Définir la fonction principale

Ajoutez le code suivant à main.cpp pour implémenter la fonction main qui crée trois objets Cuboid, définit leurs dimensions, calcule leurs volumes, ajoute deux des objets et imprime les dimensions et le volume de l'objet cuboïde résultant :

//Définition de la méthode main pour accéder aux membres de la classe
int main() {

    cout << "\n\nBienvenue à LabEx :-)\n\n\n";
    cout << " =====  Programme pour démontrer la surcharge d'opérateur Plus, en CPP  ===== \n\n";

    //Déclaration des objets de la classe pour accéder aux membres de la classe
    Cuboid c1;
    Cuboid c2;
    Cuboid c3;

    //Pour stocker le volume du Cuboid
    double volume = 0.0;

    // Définition de la longueur, de la largeur et de la hauteur pour le premier objet Cuboid : c1
    c1.setLength(3.0);
    c1.setBreadth(4.0);
    c1.setHeight(5.0);

    // Définition de la longueur, de la largeur et de la hauteur pour le second objet Cuboid : c2
    c2.setLength(2.0);
    c2.setBreadth(5.0);
    c2.setHeight(8.0);

    // Recherche du volume du premier Cuboid : c1
    cout << "Appel de la méthode getVolume() pour trouver le volume du Cuboid c1\n";
    volume = c1.getVolume();
    cout << "Volume du Cuboid c1 est : " << volume << "\n\n\n";

    // Recherche du volume du premier Cuboid : c1
    cout << "Appel de la méthode getVolume() pour trouver le volume du Cuboid c2\n";
    volume = c2.getVolume();
    cout << "Volume du Cuboid c2 est : " << volume << "\n\n\n";

    // Ajout des deux objets Cuboid c1 et c2 pour former le troisième objet c3 :
    c3 = c1 + c2;

    // Impression des dimensions du troisième Cuboid : c3
    cout << "Longueur du Cuboid c3 est : " << c3.length << endl;
    cout << "Largeur du Cuboid c3 est : " << c3.breadth << endl;
    cout << "Hauteur du Cuboid c3 est : " << c3.height << endl;

    // Recherche du volume du troisième Cuboid : c3
    cout << "\n\nAppel de la méthode getVolume() pour trouver le volume du Cuboid c3\n";
    volume = c3.getVolume();
    cout << "Volume du Cuboid c3 est : " << volume << endl;
    cout << "\n\n\n";

    return 0;
}

Compiler et exécuter le code

Utilisez la commande suivante pour compiler et exécuter le code :

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

Vous verrez la sortie suivante :

Bienvenue à LabEx :-)


 =====  Programme pour démontrer la surcharge d'opérateur Plus, en CPP  =====

Appel de la méthode getVolume() pour trouver le volume du Cuboid c1
Volume du Cuboid c1 est : 60



Appel de la méthode getVolume() pour trouver le volume du Cuboid c2
Volume du Cuboid c2 est : 80



Longueur du Cuboid c3 est : 5
Largeur du Cuboid c3 est : 9
Hauteur du Cuboid c3 est : 13


Appel de la méthode getVolume() pour trouver le volume du Cuboid c3
Volume du Cuboid c3 est : 585

Résumé

Dans ce laboratoire, vous avez appris à démontrer le concept de surcharge d'opérateur + dans le langage de programmation C++. La surcharge d'opérateurs est une fonction puissante et utile de C++ qui vous permet d'utiliser un opérateur avec des significations différentes dans différents contextes. En surchargeant l'opérateur +, vous pouvez additionner deux objets Cuboid l'un avec l'autre.