std::fstream 已使用,但编译器抛出错误

std::fstream used but compiler throws error

本文关键字:编译器 错误 出错 fstream std      更新时间:2023-10-16

我用过

using std::fstream;

并尝试创建类的对象,它说

错误:">流">未在此范围内声明

但是当专门使用 std::ofstream时,它可以正常工作。我的问题是为什么使用std::fstream是不够的,因为ofstream/ifstream是这个库的类?

亲爱的可敬的反对票,请在投反对票之前提供一个理由,以便我改进。谢谢!

您混合了#includeusing的用法。#include在源文件中包括(令人着迷不是吗?(声明,使它们可用。#include <fstream>实际上宣布std::fstreamstd::ofstream.

另一方面,using从当前命名空间中的其他命名空间导入声明,以允许使用非限定名称。这里std::ofstream是限定名称(包括命名空间(,非限定名称是...ofstream

因此,如果要使用非限定名ofstream,请将using std::ofstream;添加到代码中。

但请注意,命名空间已添加到C++中,以允许正确分离声明并避免名称冲突。特别是在主命名空间中过度使用using指令(皱眉的using namespace std;(会导致命名空间污染,并会导致瞬间发生冲突......

或者,可以省略using指令,并在整个代码中一致地使用std::ofstream