English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C++ Sobrecarga de Operador e Função Sobrecarregada
C++ É possível usar os operadores de extração de fluxo >> e os operadores de inserção de fluxo << para entrada e saída de tipos de dados integrados. Você pode sobrecarregar os operadores de extração de fluxo e os operadores de inserção de fluxo para operar sobre objetos e tipos de dados de tipos de dados personalizados do usuário.
Aqui, é importante notar que precisamos declarar a função de sobrecarga de operador como função amiga da classe, assim podemos chamar a função diretamente sem criar um objeto.
O exemplo a seguir demonstra como sobrecarregar os operadores de extração >> e inserção <<.
#include <iostream> using namespace std; class Distância { private: int pés; // 0 até infinito int palmos; // 0 até 12 public: // Construtor necessário Distância(){ pés = 0; palmos = 0; } Distância(int f, int i){ pés = f; palmos = i; } friend ostream &operator<<( ostream &output, const Distância & { output << "F: " << D.pés << " I: " << D.palmos; return output; } friend istream &operator>>( istream &input, Distância &D ) { input >> D.pés >> D.palmos; return input; } }; int main() { Distância D1(11, 10), D2(5, 11), D3; cout << "Entrada do valor do objeto: " << endl; cin >> D3; cout << "Primeira Distância : " << D1 << endl; cout << "Segunda Distância :" << D2 << endl; cout << "Terceira Distância :" << D3 << endl; return 0; }
Quando o código acima for compilado e executado, ele produzirá o seguinte resultado:
$./a.out Inserir o Valor do Objeto : 70 10 Primeira Distância : F : 11 I : 10 Segunda Distância : F : 5 I : 11 Terceira Distância : F : 70 I : 10