我正在尝试做以下事情:
它报错说:
std::ofstream outFile (fname, std::ios::binary);
//...
outFile.flush();
outFile.close();
这两行代码单独运行很好。但当我尝试将它们合并成一个语句时,由于flush函数返回的是一个引用,就会出现问题:
outFile.flush().close();
它报错说:
error: ‘struct std::basic_ostream<char>’ has no member named ‘close’
我仔细查看了参考文献,发现它实际上返回的是ostream
而不是ofstream
。
为什么会这样?这是一个错误还是设计如此?
flush
是从ostream
继承的成员函数,而ofstream
没有实现自己的flush
。然而,我认为返回一个ofstream
是更好的选择。 - starrify