Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przeciążanie
Strumienie wyjściowe używają operatora wstawiania (<<
) dla typów standardowych. Możesz również przeciążyć <<
operator dla własnych klas.
Przykład
W write
przykładzie Date
funkcji pokazano użycie struktury. Data jest idealnym kandydatem dla klasy C++, w której składowe danych (miesiąc, dzień i rok) są ukryte przed wyświetleniem. Strumień wyjściowy jest logicznym miejscem docelowym do wyświetlania takiej struktury. Ten kod wyświetla datę przy użyciu cout
obiektu :
Date dt(1, 2, 92);
cout <<dt;
Aby zaakceptować cout
Date
obiekt po operatorze wstawiania, przeciąż operator wstawiania, aby rozpoznać ostream
obiekt po lewej stronie i po Date
prawej stronie. Przeciążona <<
funkcja operatora musi być następnie zadeklarowana jako przyjazna klasa Date
, aby mogła uzyskiwać dostęp do danych prywatnych w Date
obiekcie.
// 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
Uwagi
Przeciążony operator zwraca odwołanie do oryginalnego ostream
obiektu, co oznacza, że można połączyć wstawienia:
cout <<"The date is" <<dt <<flush;