English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C++ Surcharge d'opérateurs et fonctions surchargées
C++ Il est possible d'utiliser les opérateurs d'extraction >> et d'insertion << pour entrer et sortir des types de données intégrés. Vous pouvez surcharger les opérateurs d'extraction et d'insertion pour manipuler des objets, des types de données personnalisés utilisateur, etc.
Ici, un point est important, nous devons déclarer les fonctions de surcharge d'opérateur comme des fonctions amies de la classe, de sorte que nous puissions appeler directement les fonctions sans créer d'objet.
Le exemple suivant montre comment surcharger les opérateurs >> et <<.
#include <iostream> using namespace std; class Distance { private: int feet; // 0 à l'infini int inches; // 0 à 12 public: // Constructeurs nécessaires 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 << "Entrée de 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 suivant est compilé et exécuté, il produit les résultats suivants :
$./a.out Valeur de l'objet d'entrée : 70 10 Première distance : F : 11 I : 10 Deuxième distance : F : 5 I : 11 Troisième distance : F : 70 I : 10