将命令行 argument/fstream 传递给函数

pass command line argument/fstream into function

我用一个文本文件的名称调用我的程序,该文件被放入 argv[2 & 4](有两个文件)。然后我需要这个名字来传递给一个函数。 ifstream myFile(argv[2]) 然后像 void func(ifstream myFile, ifstream myOtherFile) 一样传递 ifstream 会更好还是我应该像 void func(char* nameOne, char* nameTwo) 一样传递 argv[2 & 4] 本身?如果是第二种方式,那是我传递的正确方式吗?

这些文件只在那个函数的范围内使用,所以我可以在函数中打开和关闭它们,或者打开它们,将它们传递给函数,然后从函数返回后关闭它们。我只是想知道哪种方式更有意义。谢谢

RAII 是主题 C++ 资源管理 - 尽可能让 } 句柄清理。在您的情况下,该指南建议自动持续时间 ifstream 仅存在于 func 的范围内,因为它会在销毁时关闭文件。由于 ifstream 只是移动,您可以将 func 调用为 func(ifstream(argv[2]), ifstream(argv[4]))