Я думаю, что следующий код можно использовать для создания манипуляторов.
#include<iostream>
ostream & symbol(ostream & output)
{
return output << "\tRs";
}
работает нормально. Следующий оператор
cout << "Total amount: " << 567 << symbol;
дает результат
Total amount: 567 Rs
Но я не понял, почему он работает. У меня есть следующая информация о перегрузке операторов в C++.
можно перегружать только существующие операторы. Новые операторы не могут быть созданы. Но символ не является существующим оператором.
В операторе(cout << "Общая сумма :" << 567 << символ;)кажется, что << — это перегруженный оператор, а символ — это переменная/объект. Но я не объявлял символ как переменную/объект.
почему они используют оператор return(return output << "\tRs";)?. Я думаю(вернуть "\tRs";)или(вывод << "\tRs";)должно работать. (Я пробовал, но не работает:))
На самом деле я не знаю, как работает приведенный выше код. Есть ли кто-нибудь, кто объяснит работу вышеуказанной перегрузки оператора?