找不到 .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");
}