為您的自訂類別多載 <<
運算子
輸出資料流針對標準類型使用插入 (<<
) 運算子。 您也可以為您的自訂類別多載 <<
運算子。
範例
write
函式範例示範 Date
結構的用法。 日期是 C++ 類別的理想候選,其中的資料成員 (月、日和年) 會隱藏不顯示。 輸出資料流是顯示這種結構的邏輯目的地。 以下程式碼使用 cout
物件顯示日期:
Date dt(1, 2, 92);
cout <<dt;
若要讓 cout
可以在插入運算子之後接受 Date
物件,必須多載插入運算子以識別左邊的 ostream
物件和右邊的 Date
。 多載的 <<
運算子函式必須接著宣告為 Date
類別的 friend,如此它就可以存取 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
備註
多載的運算子會傳回原始 ostream
物件的參考,這表示您可以合併插入:
cout <<"The date is" <<dt <<flush;