多載化 << 您自己的類別的的運算子
輸出資料流使用的插入動作 (<<) 運算子為標準的型別。 您也可以多載<<您自己的類別的運算子。
範例
write函式的範例顯示了使用Date結構。 日期即會從檢視隱藏的資料成員 (月、 日和年) 的 C++ 類別的理想候選。 輸出資料流是邏輯的目的端,以顯示這種結構。 這段程式碼會顯示日期,使用cout物件:
Date dt( 1, 2, 92 );
cout << dt;
若要取得cout接受Date插入運算子後面的物件、 多載來辨識插入運算子ostream在左邊的物件和Date在右邊。 多載<<運算子函式然後必須宣告為類別的朋友Date ,它能存取內的私用資料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;
}
備註
多載的運算子會傳回原始參考ostream物件,這表示您可以結合插入:
cout << "The date is" << dt << flush;