我正在为我的应用程序开发一个“文件系统”来处理文件操作,例如列出、创建、删除文件和目录,以及获取文件数据。我想为此使用 std::fstream,因为它比 C 文件处理程序更安全、更容易格式化。但是我不能从函数返回一个流对象(它没有一个拷贝c'tor)并且当我试图返回引用时我收到一个警告(我没有警告并不意味着那么多但我正在尝试修复我的应用程序中所有可能的警告,直到现在我都做了所有这些):“警告:返回对临时的引用”。我能做些什么?如果有人遇到这种情况并找到了更好的处理方法,请告知。
编辑:
std::ofstream &Filesystem::createFile(const String &str) {
std::ofstream file(str);
return file;
}
这就是我要实现的目标。但由于警告,我正在寻找另一种方式。
提前致谢,
加西姆加西姆扎达
最佳答案
使用智能指针,类似的东西可能会起作用(或更新的 std::unique_ptr
之一,等等)
std::auto_ptr<std::iostream> foo()
{
return std::auto_ptr<std::iostream>(new fstream(...));
}
关于c++ - 如何返回标准文件流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6706212/