1. 程式人生 > >c++類流操作運算子的重定義

c++類流操作運算子的重定義

對於流操作運算子我們需要注意的是函式的返回型別應該是流輸入型別的引用或者流輸出型別的引用,因為如果程式碼是

cout<<a<<b;

我們對a執行完cout函式之後,我們應該再次將cout返回給b,使b也能正確的被呼叫。

#include <iostream>
using namespace std;
class CFraction
{
    public:
    CFraction()
    {
        nume = 0;
        deno = 1;
    }
      friend ostream &operator<<(ostream &, CFraction c);
      friend istream &operator>>(istream &, CFraction &c);
    private: 
      int nume;
      int deno;
};
 
ostream & operator<<(ostream &output,CFraction c)
{
    output << c.nume << "/" << c.deno << endl;
    return output;
}
 
istream & operator>>(istream &input,CFraction &c)
{
    input >> c.nume >> c.deno;
    return input;
}
 
int main()
{
    CFraction c;
    cin >> c;
    cout << c;
    system("pause");
    return 0;
}