我有一個重載< <操作從我作爲實現Reckful的類如下:其中<<是我在本聲明中的重載操作符?
ostream& operator << (ostream& os, const reckful& p)
{
os << p.PrintStuff();
return os;
}
PrintStuff()只是被Reckful的返回一個字符串的成員函數。
我明白的事情,如果我是寫在main()類似cout << reckobject << endl;
方式,cout << reckobject
將採取優先和我的重載< <(使用COUT作爲左操作數和reckobject作爲右操作數)將返回的ostream對象os
,保留表達式os << endl;
以便輸出字符串並結束該行。所以,第一個< <是我宣佈的一個,第二個是標準< <對不對?
然而,我的主要問題是...是什麼事件,這是左右操作數的順序,以及< <運營商,當我運行這樣的語句:
cout << "reckful object = " << reckobject << "!" << endl;
爲什麼如果在一個< <的兩側沒有ostream對象和垃圾對象時,它可以工作?
謝謝。