Latest web development tutorials

C ++ Funktionsaufruf-Operator () Überlastung

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

Der Funktionsaufruf Operator () kann für Klassenobjekte überlastet werden. Wenn die schwere Last (), sind Sie nicht eine neue Art der Aufruf einer Funktion, im Gegenteil zu schaffen, ist es möglich, eine Transfer-Operator-Funktion beliebige Anzahl von Parametern zu erstellen.

Das folgende Beispiel zeigt, wie überladene Funktionsaufrufoperator ().

#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;
      }
      // 重载函数调用运算符
      Distance operator()(int a, int b, int c)
      {
         Distance D;
         // 进行随机计算
         D.feet = a + c + 10;
         D.inches = b + c + 100 ;
         return D;
      }
      // 显示距离的方法
      void displayDistance()
      {
         cout << "F: " << feet <<  " I:" <<  inches << endl;
      }
      
};
int main()
{
   Distance D1(11, 10), D2;

   cout << "First Distance : "; 
   D1.displayDistance();

   D2 = D1(10, 10, 10); // invoke operator()
   cout << "Second Distance :"; 
   D2.displayDistance();

   return 0;
}

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

First Distance : F: 11 I:10
Second Distance :F: 30 I:120

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