當編寫非成員函數來重載一個操作符時,第一個參數是否對應於左操作數,第二個參數是否對應右操作數?重載操作符:第一個參數對應左操作數,第二個參數對應右操作數?
我試圖超載「< <」操作者使用這樣的:
stream << ClassA << ClassB
下面是一個例子,其中FeetInches
是成員變量類feet
和inches
。
這就是爲什麼這個參數順序工作:
ostream &operator<<(ostream &strm, const FeetInches &obj)
{
strm << obj.feet << " feet, " << obj.inches << " inches";
return strm;
}
-
但這個參數順序不起作用?
ostream &operator<<(const FeetInches &obj, ostream &strm)
{
strm << obj.feet << " feet, " << obj.inches << " inches";
return strm;
}