Surcharger l'opérateur d'addition en C++

Muhammad Adil 11 décembre 2023
Surcharger l'opérateur d'addition en C++

La surcharge d’opérateur est une technique dans laquelle un programmeur peut redéfinir la signification d’un opérateur. C’est un mécanisme qui permet aux programmeurs d’étendre la syntaxe de leur langage de programmation en ajoutant de nouvelles significations aux symboles et aux mots-clés.

Les opérateurs peuvent être classés comme unaires, binaires ou ternaires. Les opérateurs unaires prennent un opérande, les opérateurs binaires prennent deux opérandes et les opérateurs ternaires prennent trois opérandes.

Vous pouvez surcharger les opérateurs à l’aide d’une fonction friend, d’une fonction membre ou d’une fonction normale. Cet article se concentrera uniquement sur la surcharge de l’opérateur d’addition à l’aide de la fonction friend en C++.

Le mot clé friend est utilisé dans le langage C++ pour spécifier quelles classes peuvent accéder aux données privées membres d’une classe. Il est important de noter qu’une fonction friend n’est pas un membre de la classe, mais qu’elle est autorisée à accéder à certaines ou à toutes les données et fonctions privées de cette classe.

Les classes amies sont souvent utilisées pour fournir des fonctions d’assistance à d’autres classes. Les fonctions friend sont parfois appelées fonctions non membres car elles ne sont pas membres de la classe.

En C++, si vous voulez surcharger un opérateur en utilisant la fonction friend, vous devez la déclarer comme friend. La déclaration friend indique au compilateur que cette fonction sera utilisée avec d’autres fonctions et objets de la même classe.

Surcharger l’opérateur d’addition à l’aide de la fonction friend en C++

En C++, l’opérateur d’addition surchargé est un opérateur binaire qui prend deux opérandes du même type et effectue une addition sur eux.

Les étapes suivantes permettent de surcharger l’opérateur d’addition en C++ à l’aide de la fonction friend :

  • Définissez une classe modèle, qui peut appeler operator+() dans la classe dérivée.
  • Définissez une fonction friend qui surcharge l’opérateur d’addition dans la classe dérivée.
  • Définissez les opérateurs surchargés à ajouter dans la classe de modèle.
  • Définissez un opérateur surchargé pour l’opération d’addition dans la classe dérivée appelée par la fonction friend définie à l’étape 2.

Exemple de code :

#include <iostream>
class Demo {
 private:
  int e_demo{};

 public:
  Demo(int demo) : e_demo{demo} {}
  friend Demo operator+(const Demo& x1, const Demo& x2);
  int getDemo() const { return e_demo; }
};
Demo operator+(const Demo& x1, const Demo& x2) {
  return Demo{x1.e_demo + x2.e_demo};
}
int main() {
  Demo demo1{5};
  Demo demo2{5};
  Demo demoSum{demo1 + demo2};
  std::cout << "Total Count is " << demoSum.getDemo();
  return 0;
}

Production:

Total Count is 10

Cliquez ici pour vérifier la démonstration en direct du code mentionné ci-dessus.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook

Article connexe - C++ Operator