rsk*_*k82 -1 c++ parameters iostream function
我的意思是说:
每个人都知道这种将流重定向到输出的方法:
cout << "sometext"
Run Code Online (Sandbox Code Playgroud)
但是可以将该流传递给这样的函数:
my_function() << "sometext";
Run Code Online (Sandbox Code Playgroud)
是*:
#include <iostream>
#include <ostream>
std::ostream & my_function() { return std::cout; }
// ...
my_function() << "Hello world.\n";
Run Code Online (Sandbox Code Playgroud)
*)你用语言说的任何内容都是完全正确的,你可能很难将其集成到你的项目中,但这个答案显示了如何让你的代码做你想做的.
每个人都知道这种将流重定向到输出的方法:
那不是那个.流被调用cout; 这是iostream对象.该<<运营商不重定向任何东西.该std::ostream物体都有重载operator<<函数.当您使用<<左侧的流和某些在右侧具有重载的类型时,将调用这些函数.
<< "sometext"不是可以"重定向"的"流".它甚至不是C++中的有效表达式.该<<操作是二元的.它需要两个参数.
my_function() << "sometext";只有当它返回一个std::ostream类或从它派生的东西时才能工作.或者operator<<为它定义了重载的东西const char*.