重载运算符:第一个参数对应左操作数,第二个参数对应右操作数
Overloading Operators: Does the 1st parameter correspond to the left operand and the 2nd one to the right operand?
在编写非成员函数以重载运算符时,第一个参数对应左操作数,第二个参数对应右操作数吗?
我试图让"<<"运算符过载,以便像这样使用它:
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;
}
是的,一切都如您所说。
ostream
排在第一位,因为我们这里没有任何调用对象。
ostream &operator<<(ostream &strm, const FeetInches &obj)
{
strm << obj.feet << " feet, " << obj.inches << " inches";
return strm;
}
因为CCD_ 5将被解释为CCD_。
相关文章:
- 如何反转整数参数包
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 函数调用中参数的顺序重要吗
- 部分定义/别名模板模板参数
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 使用不带参数的函数访问结构元素
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何使用Luacneneneba API正确读取字符串和表参数
- 在派生函数中指定void*参数
- 视图中的参数推导失败:take_while
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- 使用 std::move 将参数传递给函数,如果该参数声明为按值传递或使用移动操作数 &&,是否有区别?
- 重载运算符:第一个参数对应左操作数,第二个参数对应右操作数
- OpenCV 错误:输入参数的大小不匹配(该操作既不是"数组操作数组")