Latest web development tutorials

C ++ surcharge d'opérateur entrée et de sortie

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

C ++ peut utiliser l'opérateur d'extraction de flux >> et l'opérateur d'insertion de flux << à l'entrée et la sortie intégrée des types de données. Vous pouvez remplacer l'extraction de flux et de flux opérateur opérateur d'insertion pour manipuler des objets et d'autres types de données définis par l'utilisateur.

Ici, il est important, nous avons besoin de la surcharge d'opérateur fonction est déclarée fonction classe ami, donc nous ne pouvons pas créer un objet et d'appeler directement la fonction.

L'exemple suivant montre comment l'opérateur d'extraction surchargé >> et l'opérateur << insert.

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

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

$./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

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