Latest web development tutorials

C ++ Überladen von Operatoren Beziehung

C ++ Funktion Überlastung und Überladen von Operatoren C ++ Funktion Überlastung und Überladen von Operatoren

C ++ Sprache eine Vielzahl von relationalen Operatoren unterstützt (<,>, <=,> =, ==, etc.), können sie verwendet werden, um die C ++ Typen Einbau-Daten zu vergleichen.

Sie können jede der relationalen Operatoren außer Kraft setzen, die überlasteten relationalen Operatoren können verwendet werden, um Objekte der Klasse zu vergleichen.

Das folgende Beispiel zeigt, wie überladene Operator <. In ähnlicher Weise können Sie auch andere überladene relationalen Operatoren versuchen.

#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;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

D2 is less than D1

C ++ Funktion Überlastung und Überladen von Operatoren C ++ Funktion Überlastung und Überladen von Operatoren