Hab*_*wad 5 c++ operator-overloading
我认为以下代码可用于创建操纵器.
#include<iostream>
ostream & symbol(ostream & output)
{
return output << "\tRs";
}
Run Code Online (Sandbox Code Playgroud)
它工作正常.以下声明
cout << "Total amount: " << 567 << symbol;
Run Code Online (Sandbox Code Playgroud)
给出输出
Total amount: 567 Rs
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么它有效.我有关于C++中的运算符重载的以下信息.
只有现有的运营商才能超载.无法创建新运算符.但该符号不是现有的运营商.
在语句中(cout <<"总量:"<< 567 <<符号;),似乎<<是重载运算符而符号是变量/对象.但我没有将符号声明为变量/对象.
为什么他们使用return语句(返回输出<<"\ tRs";)?我认为(返回"\ tRs";)或(输出<<"\ tRs";)应该有用.(我试过但不工作:))
其实我不知道上面的代码是如何工作的.有没有人解释上述运算符重载的工作原理?