Latest web development tutorials

C ++ relation opérateur surcharge

C ++ surcharge de la fonction et la surcharge des opérateurs C ++ surcharge de la fonction et la surcharge des opérateurs

Langage C ++ prend en charge une variété d'opérateurs relationnels (<,>, <=,> =, ==, etc.), ils peuvent être utilisés pour comparer le C ++ intégré dans les types de données.

Vous pouvez remplacer l'un des opérateurs relationnels, les opérateurs relationnels surchargés peuvent être utilisés pour comparer les objets de la classe.

L'exemple suivant montre comment surchargé <opérateur. De même, vous pouvez également essayer d'autres opérateurs relationnels surchargés.

#include <iostream>
using namespace std;
 
class Distance
{
   private:
      int feet;             // 0 到无穷
      int inches;           // 0 到 12
   public:
      // 所需的构造函数
      Distance(){
         feet = 0;
         inches = 0;
      }
      Distance(int f, int i){
         feet = f;
         inches = i;
      }
      // 显示距离的方法
      void displayDistance()
      {
         cout << "F: " << feet << " I:" << inches <<endl;
      }
      // 重载负运算符( - )
      Distance operator- ()  
      {
         feet = -feet;
         inches = -inches;
         return Distance(feet, inches);
      }
      // 重载小于运算符( < )
      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 is less than D2 " << endl;
   }
   else
   {
      cout << "D2 is less than D1 " << endl;
   }
   return 0;
}

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

D2 is less than D1

C ++ surcharge de la fonction et la surcharge des opérateurs C ++ surcharge de la fonction et la surcharge des opérateurs