C++ 左手操作数cout如何传递到这里?
我不明白这是怎么回事,也就是说只是函数名C++ 左手操作数cout如何传递到这里?,c++,C++,我不明白这是怎么回事,也就是说只是函数名currency 用于调用函数。 这不是应该像currency(cout)一样,但是使用它可以提供输出 RS 7864.5 您的函数被视为ostream操纵器。函数currency()是一个操纵器:流类具有特殊的重载输出运算符,将具有特定sigunaure的函数作为参数。它们看起来像这样(省略了模板化): class std::ostream 公共std::ios{ 公众: // ... std::ostream&operator这起作用(问题中的代码
currency
用于调用函数。
这不是应该像currency(cout)
一样,但是使用它可以提供输出
RS 7864.5
您的函数被视为ostream操纵器。函数
currency()
是一个操纵器:流类具有特殊的重载输出运算符,将具有特定sigunaure的函数作为参数。它们看起来像这样(省略了模板化):
class std::ostream
公共std::ios{
公众:
// ...
std::ostream&operator这起作用(问题中的代码):
std::cout
RS 7864.5
RS 1054DBCC7864.5
class std::ostream
public std::ios {
public:
// ...
std::ostream& operator<< (std::ios_base& (*manip)(std::ios_base&));
std::ostream& operator<< (std::ios& (*manip)(std::ios&));
std::ostream& operator<< (std::ostream& (*manip)(std::ostream&));
};
std::cout << currency << 7864.5;
currency(std::cout) << 7864.5;
std::cout << currency(std::cout) << 7864.5;
ostream& retval = currency(std::cout); // prints "RS " as you expect
std::cout << retval; // oops, this is cout << cout, which is meaningless
std::cout << 7864.5; // prints "7864.5"