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

C++ 教程基础

C++ Contrôle de flux

C++ Fonction

C++ Tableau & Chaîne

C++ Structure des données

C++ Classe & Objet

C++ Pointeurs

C++ Héritage

C++ Tutoriel STL

C++ Guide de référence

C++ Surcharge de l'opérateur de relation

C++ 重载运算符和重载函数

C++ Le langage prend en charge divers opérateurs de relation ( < , > , <= , >= , == , etc.), qui peuvent être utilisés pour comparer C++ Types de données intégrés.

Vous pouvez surcharger n'importe quel opérateur de relation, et l'opérateur de relation surchargé peut être utilisé pour comparer les objets de la classe.

L'exemple suivant montre comment surcharger l'opérateur <, de la même manière, vous pouvez également essayer de surcharger d'autres opérateurs de relation.

#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 négatif ( - )
      Distance operator- ()  
      {
         feet =; -feet;
         inches =; -inches;
         return Distance(feet, inches);
      }
      // Surcharge de l'opérateur inférieur ( < )
      bool operator <(const Distance& d)
      {
         if(feet < d.feet)
         {
            return true;
         }
         if(feet == d.feet && inches < d.inches)
         {
            return true;
         }
         return false;
      }
};
int main()
{
   Distance D1(11, 10), D2(5, 11);
 
   if( D1 < D2 )
   {
      cout << "D1小于D2 " << endl;
   }
   else
   {
      cout << "D2小于D1 " << endl;
   }
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

D2小于D1

C++ 重载运算符和重载函数