Reb*_*nix 3 c++ fstream const function pass-by-reference
我知道通常,对数据的引用应该作为函数中的常量被隔离,以便函数不能改变它,对于仅用于输入的fstream对象是否也适用?
如...
void doFoo(fstream &fileName)
{
fileName.open("data.txt", ios::in);
}
Run Code Online (Sandbox Code Playgroud)
如果它是可取的,它是否遵循大多数其他一切的逻辑?
如...
void doFoo(const fstream &fileName)
{
fileName.open("data.txt", ios::in);
}
Run Code Online (Sandbox Code Playgroud)
对输出流也很好奇
我只是想知道它是否重要,如果是的话,为什么?
谢谢!
文件的常量不会转换为用于访问文件的对象的常量属性.即使只是读取文件,也必须修改内部缓冲区,当前读取位置等.这同样适用于输出,所以基本上const流是没用的.
顺便说一句:如果你想清楚一个函数只从流中读取,则传递给它std::istream&.首先,"i"在istream合理地确定你不写信给它.其次,缺少"f" fstream允许使用stringstreams,或者像cin这样的流.
| 归档时间: |
|
| 查看次数: |
4085 次 |
| 最近记录: |