English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriel de base

C++ Contrôle de flux

C++ Fonctions

C++ Tableaux & Chaînes

C++ Structures de données

C++ Classe & Objet

C++ Pointeurs

C++ Héritage

C++ Tutoriel STL

C++ Manuel de référence

C++ Surcharge d'opérateur unaire

C++ Surcharge d'opérateur et surcharge de fonction

Les opérateurs unaires ne s'appliquent qu'à un opérande, voici un exemple d'opérateur unaire :

Les opérateurs unaires apparaissent généralement à gauche de l'objet sur lequel ils opèrent, par exemple !obj,-obj et ++obj, mais elles peuvent parfois être utilisées comme suffixes, par exemple obj++ ou obj--.

L'exemple suivant montre comment surcharger l'opérateur unaire de soustraction ( - )

#include <iostream>
using namespace std;
 
class Distance
{
   private:
      int feet;             // 0 à l'infini
      int inches;           // 0 à 12
   public:
      // Constructeurs nécessaires
      Distance()
         feet = 0;
         inches = 0;
      }
      Distance(int f, int i){
         feet = f;
         inches = i;
      }
      // Méthode d'affichage de la distance
      void displayDistance()
      {
         cout << "F: " << feet << " I:" << inches << endl;
      }
      // Surcharge de l'opérateur de signe négatif ( - )
      Opérateur de distance- ()  
      {
         feet = -feet;
         inches = -inches;
         return Distance(feet, inches);
      }
};
int main()
{
   Distance D1(11, 10), D2(-5, 11);
 
   -D1;                     // Prendre la valeur opposée
   D1.displayDistance();    // Distance D1
 
   -D2;                     // Prendre la valeur opposée
   D2.displayDistance();    // Distance D2
 
   return 0;
}

Lorsque le code suivant est compilé et exécuté, il produit les résultats suivants :

F: -11 I:-10
F: 5 I:-11

J'espère que cet exemple vous aidera à mieux comprendre le concept de surcharge d'opérateur unilatéral, de la même manière, vous pouvez essayer de surcharger l'opérateur logique non ( ! ).

C++ Surcharge d'opérateur et surcharge de fonction