C++ Sobrecarga de operadores de entrada/salida

C++ 重载运算符和重载函数Sobrecarga de operadores y funciones en C++

C++ puede usar el operador de extracción de flujo >> y el operador de inserción de flujo << para ingresar y generar tipos de datos integrados. Puede sobrecargar el operador de extracción de flujo y el operador de inserción de flujo para operar con objetos y otros tipos de datos definidos por el usuario.

Aquí, es importante tener en cuenta que necesitamos declarar la función de sobrecarga del operador como función amiga de la clase, de modo que podamos llamar a la función directamente sin crear un objeto.

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

Ejemplo

#include <iostream> using namespace std; class Distance { private: int feet; // 0 a infinito int inches; // 0 a 12 public: // El constructor requerido 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 anterior 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 operadores y funciones en C++

Otras extensiones