找不到 .h 文件中定义的函数的标识符
Identifier not found for function defined in a .h file
当我尝试 运行 我的程序时,我不断收到“找不到标识符”错误...
我已经在 .h 文件中声明了该函数,在 .cpp 文件中实现了它,我尝试在我的主文件中使用它。
你能帮忙吗?
//main.cpp
#include <iostream> // using IO functions
#include<fstream>
#include "SokobanSolver.h"
using namespace std;
int main() {
loadFile();
system("pause");
}
如上所示,我记得在 main.cpp 文件中包含 SokobanSolver.h...
//SokobanSolver.h
#ifndef SOKOBANSOLVER_H
#define SOKOBANSOLVER_H
#include"Position.h"
#include<vector>
#include <iostream> // using IO functions
using namespace std;
class SokobanSolver {
private:
vector<Position> walls;
vector<Position> goals;
vector<Position> boxes;
//member functions
public:
void loadFile();
};
#endif
//SokobanSolver.cpp
#include"SokobanSolver.h"
#include"Position.h"
#include<vector>
#include <iostream>
#include <fstream>
void SokobanSolver::loadFile()
{
ifstream input("problemFile.txt");
char ch;
int row = 0;
int col = 0;
while (input.get(ch))
{
//new line?
if (ch == '\n')
{
row++;
col = 0;
}
else
{
if (ch == '#')
walls.push_back(Position(row, col));
else if (ch == '.')
goals.push_back(Position(row, col));
else if (ch == '$')
boxes.push_back(Position(row, col));
col++;
}
}
}
我也把 SokobanSolver.h 放在 SokobanSolver.cpp 文件中...所以我不明白,为什么它找不到函数 loadFile。
正如评论中指出的那样,您需要一个SokobanSolver
对象来调用成员函数loadFile
:
int main() {
SokobanSolver solver;
solver.loadFile();
system("pause");
}
当我尝试 运行 我的程序时,我不断收到“找不到标识符”错误... 我已经在 .h 文件中声明了该函数,在 .cpp 文件中实现了它,我尝试在我的主文件中使用它。
你能帮忙吗?
//main.cpp
#include <iostream> // using IO functions
#include<fstream>
#include "SokobanSolver.h"
using namespace std;
int main() {
loadFile();
system("pause");
}
如上所示,我记得在 main.cpp 文件中包含 SokobanSolver.h...
//SokobanSolver.h
#ifndef SOKOBANSOLVER_H
#define SOKOBANSOLVER_H
#include"Position.h"
#include<vector>
#include <iostream> // using IO functions
using namespace std;
class SokobanSolver {
private:
vector<Position> walls;
vector<Position> goals;
vector<Position> boxes;
//member functions
public:
void loadFile();
};
#endif
//SokobanSolver.cpp
#include"SokobanSolver.h"
#include"Position.h"
#include<vector>
#include <iostream>
#include <fstream>
void SokobanSolver::loadFile()
{
ifstream input("problemFile.txt");
char ch;
int row = 0;
int col = 0;
while (input.get(ch))
{
//new line?
if (ch == '\n')
{
row++;
col = 0;
}
else
{
if (ch == '#')
walls.push_back(Position(row, col));
else if (ch == '.')
goals.push_back(Position(row, col));
else if (ch == '$')
boxes.push_back(Position(row, col));
col++;
}
}
}
我也把 SokobanSolver.h 放在 SokobanSolver.cpp 文件中...所以我不明白,为什么它找不到函数 loadFile。
正如评论中指出的那样,您需要一个SokobanSolver
对象来调用成员函数loadFile
:
int main() {
SokobanSolver solver;
solver.loadFile();
system("pause");
}