我正在创建一个函数来读取位于IO.cpp文件中的文件内容:
#include "IO.h"
#include <iostream>
#include <fstream>
IO::IO()
{
//ctor
}
void IO::readFile(std::string fileName)
{
std::ofstream inputFile;
inputFile.open(FileName);
inputFile >> fileName.toStdString;
inputFile.close();
std::cout << fileName;
}
使用头文件IO.h:
#ifndef IO_H
#define IO_H
class IO
{
public:
IO();
void readFile(std::string inputFile);
protected:
private:
};
#endif // IO_H
但我从Clang那里得到一个错误
include / IO.h | 9 |错误:使用未声明的标识符&#39; std&#39; |
我无法弄清楚如何解决它。
答案 0 :(得分:21)
在解析标头(特别是void readFile(std::string inputFile);
行)时,编译器不知道存在std
命名空间,更不用说string
存在于该命名空间内。
#include <string>
。
答案 1 :(得分:-1)
在许多情况下,当您忘记在单独文件的方法实现中包含 #include <iostream>
时会发生这种情况,即在 main 函数之外(即当您转到头文件路由时)