Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Surcharge de l’opérateur
Les flux de sortie utilisent l’opérateur d’insertion (<<
) pour les types standard. Vous pouvez aussi surcharger l’opérateur <<
pour vos propres classes.
Exemple
L’exemple de fonction write
a montré l’utilisation d’une structure Date
. Les dates sont une parfaite illustration de classe C++ dans laquelle les membres de données (mois, jour et année) sont masqués. Un flux de sortie est la destination logique pour l’affichage d’une structure de ce type. Ce code affiche une date à l’aide de l’objet cout
:
Date dt(1, 2, 92);
cout <<dt;
Pour que cout
accepte un objet Date
après l’opérateur d’insertion, surchargez l’opérateur d’insertion pour reconnaître un objet ostream
à gauche et un objet Date
à droite. La fonction d’opérateur <<
surchargé doit ensuite être déclarée comme ami (friend) de la classe Date
pour pouvoir accéder aux données privées dans un objet Date
.
// overload_date.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
class Date
{
int mo, da, yr;
public:
Date(int m, int d, int y)
{
mo = m; da = d; yr = y;
}
friend ostream& operator<<(ostream& os, const Date& dt);
};
ostream& operator<<(ostream& os, const Date& dt)
{
os << dt.mo << '/' << dt.da << '/' << dt.yr;
return os;
}
int main()
{
Date dt(5, 6, 92);
cout << dt;
}
5/6/92
Notes
L’opérateur surchargé retourne une référence à l’objet ostream
d’origine, ce qui signifie que vous pouvez combiner des insertions :
cout <<"The date is" <<dt <<flush;