因此,我一直在尝试更加严格地制作任何不应被函数触及的传递参数const
。
我在一些 C++ 代码中遇到的一种情况是对象可能会更改,但我想“锁定”函数以防止访问对象的某些关键功能。例如,对于std::ifstream
文件句柄,我可能希望阻止函数关闭文件。
如果我将它作为 a 传递const &
,则该const
部分似乎使我无法执行标准文件 i/o。
例如,我想要一些类似的东西
void GetTags(Arr<std::string> & tags, std::ifstream const& fileHandle)
...但是以允许文件 i/o 但不允许打开/关闭操作的方式编写。
在 C++ 中有没有好的/可靠的方法来做到这一点?什么被认为是最佳实践?