Latest web development tutorials

C ++ operatora przeciążenia wejście i wyjście

Funkcja C ++ przeciążenie i przeciążanie operatorów Funkcja C ++ przeciążenie i przeciążanie operatorów

C ++ można użyć operatora ekstrakcji strumienia >> i << operatora strumienia wstawiania do wejścia i wyjścia wbudowanym typów danych. Można zastąpić ekstrakcji strumienia i strumienia operator operator wstawiania do manipulowania obiektami oraz inne typy danych zdefiniowane przez użytkownika.

Tutaj ważne jest, musimy operatora przeciążenia funkcja jest zadeklarowana klasa przyjaciela funkcji, więc nie możemy utworzyć obiekt i wywołanie funkcji bezpośrednio.

Poniższy przykład pokazuje, jak przeciążony operator ekstrakcji >> A operator << wkładkę.

#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;
      }
      friend ostream &operator<<( ostream &output, 
                                       const Distance &D )
      { 
         output << "F : " << D.feet << " I : " << D.inches;
         return output;            
      }

      friend istream &operator>>( istream  &input, Distance &D )
      { 
         input >> D.feet >> D.inches;
         return input;            
      }
};
int main()
{
   Distance D1(11, 10), D2(5, 11), D3;

   cout << "Enter the value of object : " << endl;
   cin >> D3;
   cout << "First Distance : " << D1 << endl;
   cout << "Second Distance :" << D2 << endl;
   cout << "Third Distance :" << D3 << endl;


   return 0;
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

$./a.out
Enter the value of object :
70
10
First Distance : F : 11 I : 10
Second Distance :F : 5 I : 11
Third Distance :F : 70 I : 10

Funkcja C ++ przeciążenie i przeciążanie operatorów Funkcja C ++ przeciążenie i przeciążanie operatorów