ostream作为函数返回值

fasdfdsfdsf 2009-03-27 09:22:04
有下面的函数
ostream& display(ostream& os)
{
os<<"hello"<<endl;
return os;

}
一直不明白返回os有什么用途。目的是什么,大侠们能举出一个详细的例子么。
...全文
388 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fasdfdsfdsf 2009-03-29
  • 打赏
  • 举报
回复
哦,用在<<重载中。非常感谢各位
huntrose 2009-03-27
  • 打赏
  • 举报
回复

上面代码有点小错误~~ 更正之~
class Vector2 {
int x,y;

....

friend std::ostream& operator<<(std::ostream& os, const Vector2& rhs) {
os<<"Vector2( "<<rhs.x<<" , "<<rhs.y<<" )";
return os;
}
};


pengzhixi 2009-03-27
  • 打赏
  • 举报
回复
os只是作为一个ostream类对象的引用别名。
huntrose 2009-03-27
  • 打赏
  • 举报
回复

再普通一点的用处大概就是可以把自己的对象用流的方法输出

class Vector2 {
int x,y;

....

friend std::ostream& operator<<(std::ostream& os, const Vector2& rhs) {
os<<"Vector2( "<<x<<" , "<<y<<" )";
return os;
}
};

这样就可以

void f() {
Vector2 v1,v2;
std::cout<<v1<<std::endl;
std::cout<<v2<<std::endl;
}
downmooner 2009-03-27
  • 打赏
  • 举报
回复
是啊。

把stream做参数的参数的大多是类内的重载<<>>符号。
fasdfdsfdsf 2009-03-27
  • 打赏
  • 举报
回复
就只有这一种用法吗?我觉得这样还不如直接就cout<<"hello world".
  • 打赏
  • 举报
回复
可以这样连续调用

display( cout )<<"aaaa"<<"bbbb"<<endl;
downmooner 2009-03-27
  • 打赏
  • 举报
回复
display(cout)<<"world!";

65,113

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧