多載化 << 您自己的類別的的運算子

輸出資料流使用的插入動作 (<<) 運算子為標準的型別。您也可以多載<<您自己的類別的運算子。

範例

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;

請參閱

參考

輸出資料流