Latest web development tutorials

C ++ de entrada sobrecarga del operador y de salida

C ++ sobrecarga de funciones y la sobrecarga de operadores C ++ sobrecarga de funciones y la sobrecarga de operadores

C ++ puede utilizar el operador de extracción de flujo >> y la << operador de inserción corriente a la entrada y salida de una función de los tipos de datos. Puede reemplazar el operador operador de inserción y extracción de flujo corriente para manipular objetos y otros tipos de datos definidos por el usuario.

Aquí, es importante, necesitamos la sobrecarga de operadores función se declara amigo función de clase, por lo que no podemos crear un objeto y llamar a la función directamente.

El siguiente ejemplo demuestra cómo operador de extracción sobrecargado >> y << operador de inserción.

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

Cuando el código se compila y ejecuta, produce los siguientes resultados:

$./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 ++ sobrecarga de funciones y la sobrecarga de operadores C ++ sobrecarga de funciones y la sobrecarga de operadores