【发布时间】:2016-02-22 23:33:55
【问题描述】:
我想知道使用std::ostream & 返回类型定义函数的原因和优势是什么,而不仅仅是用于打印值的 void 函数。例如,如果我想打印一个字符串文字,我可以通过以下两种方式进行:
std::ostream& print1(std::ostream &os){
os << "print this message";
return os;
}
print1(std::cout);
或
void print2(){
std::cout << "print this message";
}
print2();
现在使用print1 之类的函数与print2 相比有什么优势?一种比另一种更有效吗?还有其他重要的区别吗?
【问题讨论】:
-
你可以做
ofstream out("somefile.txt"); print1(out); -
但是你的问题似乎不是关于返回类型,而是关于是否将它作为参数传递?
-
另外,我假设
std::ostream os应该是std::ostream &os -
是的,当然很抱歉,我会马上改正的
-
@MaraJade “效率会有什么不同吗?” 让流的实现担心这一点,直到您可以通过测量证明某些东西效率太低。