C++ ios的正确使用
哪个版本的函数(C++ ios的正确使用,c++,ios,function,C++,Ios,Function,哪个版本的函数(myfunc2或myfunc3)在所有平台中都是正确的 ostream &myfunc1(ostream &os) const { // return os; } ostream &myfunc2(ostream &os) const { os << myfunc1(os); } ostream &myfunc3(ostream &os) const { os << myfunc
myfunc2
或myfunc3
)在所有平台中都是正确的
ostream &myfunc1(ostream &os) const {
//
return os;
}
ostream &myfunc2(ostream &os) const {
os << myfunc1(os);
}
ostream &myfunc3(ostream &os) const {
os << myfunc1(os).rdbuf();
}
ostream&myfunc1(ostream&os)常量{
//
返回操作系统;
}
ostream&myfunc2(ostream&os)常数{
os您不需要访问流的rdbuf()
,它访问streambuf
中的底层缓冲区
从概念上讲,ostream
是streambuf
的前端。您在myfunc3
中所做的是直接从streambuf
访问rdbuf
,绕过ostream
的接口
这是可以做到的,但并不常见。坚持使用myfunc2
,这是通常的做法。您是否缺少myfunc2
和myfunc3
中的return
语句?