Ton*_*roy 16
这有点像问你为什么我们想要什么const,无论如何你可以从变量读写.它允许编译时检查,这是减少错误的宝贵功能.它也更加自我记录,因为在没有构造函数调用的情况下查看声明时,您可以看到它是输入,输出还是两者:您提到的参数通常只能在实现文件中看到,而这可能并不适用.此外,每种类型的流可能在他们需要的数据成员中有一些差异 - 可能使用符合您实际需要的最小功能类可以节省内存,时间初始化或检查其他变量等.
重点是要通用。如果你只需要读取一个文件,你可以将一个ifstream作为参数,然后任何支持读取的东西都可以传入,即使它是不可写的。反之亦然。