当编写非成员函数来重载一个操作符时,第一个参数是否对应于左操作数,第二个参数是否对应右操作数?重载操作符:第一个参数对应左操作数,第二个参数对应右操作数?
我试图超载“< <”操作者使用这样的:
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;
}