加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C,fstream对象传递给函数作为引用,const?

发布时间:2020-12-16 09:42:02 所属栏目:百科 来源:网络整理
导读:我知道通常,对数据的引用应该作为函数中的常量被隔离,以便函数不能改变它,对于仅用于输入的fstream对象是否也适用? 如… void doFoo(fstream fileName){ fileName.open("data.txt",ios::in);} 如果它是可取的,它是否遵循大多数其他一切的逻辑? 如… void d
我知道通常,对数据的引用应该作为函数中的常量被隔离,以便函数不能改变它,对于仅用于输入的fstream对象是否也适用?

如…

void doFoo(fstream &fileName)
{
  fileName.open("data.txt",ios::in);
}

如果它是可取的,它是否遵循大多数其他一切的逻辑?

如…

void doFoo(const fstream &fileName)
{
  fileName.open("data.txt",ios::in);
}

对输出流也很好奇

我只是想知道它是否重要,如果是的话,为什么?

谢谢!

解决方法

文件的常量不会转换为用于访问文件的对象的常量属性.即使只是读取文件,也必须修改内部缓冲区,当前读取位置等.这同样适用于输出,所以基本上const流是没用的.

顺便说一句:如果你想清楚一个函数只从流中读取,那么传递给它一个std :: istream&.首先,istream中的“i”可以合理地确定你没有写入它.其次,fstream缺少的“f”允许使用stringstreams,或者像cin这样的流.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读