正确使用ios

时间:2017-02-06 06:49:52

标签: c++ ios function

在所有平台中,哪个版本的函数(myfunc2myfunc3)都是正确的。

ostream &myfunc1(ostream &os) const {
  //
  return os;
}
ostream &myfunc2(ostream &os) const {

    os << myfunc1(os);
}

ostream &myfunc3(ostream &os) const {

    os << myfunc1(os).rdbuf();
}

1 个答案:

答案 0 :(得分:2)

您无需访问流的rdbuf(),该流访问streambuf中的基础缓冲区。

从概念上讲,ostreamstreambuf的前端。您在myfunc3中所做的是直接从rdbuf访问streambuf,绕过ostream的界面。

这可以做到,但这种情况并不常见。坚持myfunc2,这是通常的做法。