仅在 Eclipse 中不识别在一个位置的 ofstream 声明
not recognizing declaration of ofstream in one location only in eclipse
我有一个大型程序,它正在工作,而不是一个.h文件,当我尝试声明私有流时,它给了我"无效使用未定义类型"的错误。 在 eclipse 中,我还收到有关"声明结构 std::ofstream"的错误,带有外部 ocation/user/include/c++/4.1.2/iosfwd(我检查了,这是定义 ofstream 的行/位置)。 我已经包括了iostreams和fstreams。
如果我尝试使用ifstream或fstream来标记声明,我将得到相同的错误,只是现在我尝试使用的任何对象类型的声明都会出错。
为了使事情更加烦人,我在程序的其他地方使用了fstream和ifstreams。 有一次我很生气,以至于我使用 ifstream 将有效 .h 文件的全部内容复制到 .h 文件中,这给了我一个错误......我得到了同样的错误。 我不知道为什么一个文件中有效的代码在另一个文件中无效,而唯一的更改是文件名和if_def宏。 这两个 .h 文件位于同一目录中。
很抱歉,我无法发布要审查的代码。 它是在另一台计算机上编写的,无法将代码从计算机 A 传输到 B(并且无法访问互联网)。 但是,如果您能提供建议,说明为什么我会在不查看代码的情况下收到此错误以供我测试,我将不胜感激。
编辑:在玩了更多之后,我了解到如果我删除.H文件从它的CPP文件错误消失。 所以如果文件被命名为 VectorOutput.h。 如果我从 VectorOutput 中删除 #include.cpp,即使我将其包含在其他文件中,eclipse 也不会抱怨。 如果我更改 VectorOutput 的名称.cpp错误也会以任何方式消失。 这是...啪。 我不知道这可能意味着什么,据我所知,文件的名称和具体位置应该没有任何意义。 通过重命名文件,我暂时摆脱了这个问题,但如果有人有猜测,我真的不知道他的根本原因。
你提供的很少。 我会检查你的命名空间。 检查是否使用前缀 std:: 正确声明类型。
编辑:实际上,如果您在标头中使用 ofstream(并且您是因为它声明为成员),则必须包含 fstream 标头。 iosfwd 仅适用于前向声明类型。
- 将所有 URL 组织在类中的一个位置
- C++将包含的库 (ref DLL) 从根目录更改为另一个位置
- C++11 中的随机数:有没有一种简单的方法可以将生成器种子放在代码的一个位置,然后在不同的函数中使用它?
- 强迫G 在一个位置寻找升压,忽略其他设置
- 将文件从一个位置移至窗口C 的另一个位置
- C++的最后一个位置是否有计算单元的标准功能
- 如何在下一次函数调用中使用 STL 映射擦除从最后一个位置
- 排序为最后一个位置的元素提供错误的输出
- 如何从不同部分读取二进制文件的var?(例如,2个字节,另一个位置有2个字节?)
- 一些奇怪的行为:将文件夹中的所有文件移动到另一个位置
- 如何将sql数据库文件从系统位置复制到另一个位置
- 将文件从 SDCARD 位置复制到 Android 中 c 语言的另一个位置
- 找到一个位置并返回一个迭代器不起作用
- 非循环访客模式.将接受函数移动到一个位置
- 仅在 Eclipse 中不识别在一个位置的 ofstream 声明
- 如何在命令窗口的一个位置编写变量并在同一位置更新其值
- 如何在 c++ 中打印字母和符号后保留在一个位置
- C++ 如何将内存中的文件流保存到另一个位置
- TinyXML在最后一个位置插入
- 在一个位置或更低的位置上计数集位的有效方法是什么?< / h1 >