Surcharge de l’opérateur d’addition en C++

Dans ce tutoriel nous allons découvrir comment surcharger l’opérateur d’addition (opérateur +) qui permet de faire la somme des valeurs d’un objet, dans l’exemple ci-dessous, nous allons additionner les cordonnées de deux points.

Surcharger l’opérateur d’addition est assez simple. Il doit être surchargé en tant que fonction membre.
 

Syntaxe:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ReturnType operator + (const ClassName &)
ReturnType operator + (const ClassName &)
ReturnType operator + (const ClassName &)

 
 

Exemple: Surcharge de l’opérateur d’addition
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int a, int b)
{
x = a;
y = b;
}
Point operator+ (const Point & p) const
{
return Point(x + p.x, y + p.y);
}
void afficher() {
cout << "x = " << x << ", y = " << y << endl;
}
};
int main()
{
Point p1(1, 3);
Point p2(2, 4);
Point s = p1 + p2;
s.afficher();
return 0;
}
#include <iostream> using namespace std; class Point { int x, y; public: Point(int a, int b) { x = a; y = b; } Point operator+ (const Point & p) const { return Point(x + p.x, y + p.y); } void afficher() { cout << "x = " << x << ", y = " << y << endl; } }; int main() { Point p1(1, 3); Point p2(2, 4); Point s = p1 + p2; s.afficher(); return 0; }
#include <iostream>

using namespace std;

class Point {
	
    int x, y;
	
public:

    Point(int a, int b)
    {
        x = a;
        y = b;
    }

    Point operator+ (const Point & p) const
    {
        return Point(x + p.x, y + p.y);
    }
	
    void afficher() {
        cout << "x = " << x << ", y = " << y << endl;
    }
};

int main()
{
    Point p1(1, 3);
    Point p2(2, 4);
    Point s = p1 + p2;
    s.afficher();
    return 0;
}

La sortie :
 

 
Comme indiqué dans le code ci-dessus, nous surchargons l’opérateur d’addition. Par conséquent, ‘p1 + p2’ dans la fonction principale additionnera les cordonnées de ‘p1’ avec ‘p2’.
 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *