C++ Surcharge des opérateurs d'entrée/sortie

Surcharge des opérateurs et surcharge des fonctions en C++

C++ est capable d'utiliser l'opérateur d'extraction de flux >> et l'opérateur d'insertion de flux << pour l'entrée et la sortie des types de données intégrés. Vous pouvez surcharger l'opérateur d'extraction de flux et l'opérateur d'insertion de flux pour opérer sur des types de données définis par l'utilisateur tels que des objets.

Ici, un point important est que nous devons déclarer les fonctions de surcharge d'opérateur comme fonctions amies de la classe, afin que nous puissions appeler les fonctions directement sans créer d'objet.

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

Exemple

#include <iostream> using namespace std; class Distance { private: int feet; // 0 à l'infini int inches; // 0 à 12 public: // Constructeur requis 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 << "Entrez la valeur de l'objet : " << endl; cin >> D3; cout << "Première distance : " << D1 << endl; cout << "Deuxième distance :" << D2 << endl; cout << "Troisième 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

Surcharge des opérateurs et surcharge des fonctions en C++

autres extensions