Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überladen des
Eingabestreams verwenden die Extraktion (<<
)-Operator für die Standardtypen. Sie können auch den <<
-Operator für eigene Klassen überladen.
Beispiel
Die write
-Beispielfunktion zeigt die Verwendung einer Date
-Struktur. Ein Datum ist ein idealer Kandidat für eine C++-Klasse, in der Datenmember (Monat, Tag und Jahr) aus der Ansicht ausgeblendet werden. Ein Ausgabestream ist das logische Ziel für die Anzeige einer solchen Struktur. Dieser Code zeigt ein Datum unter Verwendung des cout
-Objekts:
Date dt(1, 2, 92);
cout <<dt;
Damit cout
ein Date
-Objekt nach den Einfügeoperator akzeptiert, müssen Sie den Einfügeoperator zum Erkennen eines ostream
-Objekts auf der linken Seite und eines Date
-Objekts auf der rechten Seite überladen. Die überladenen <<
Operatorfunktion muss dann als Friend der Klasse Date
deklariert werden, sodass sie mit einem Date
-Objekt auf die privaten Daten zugreifen kann.
// 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
Hinweise
Der überladene Operator gibt einen Verweis auf das ursprüngliche ostream
-Objekt zurück, d.h., Sie können Einfügevorgängen kombinieren:
cout <<"The date is" <<dt <<flush;