CPP 头文件结构错误

CPP Header file struct error

本文关键字:错误 文件结构 CPP      更新时间:2023-10-16

这是我的标题level.h

#ifndef LEVEL_H_
#define LEVEL_H_
    #include <string>
    #include <map>
    #include <queue>
    #include <list>
    typedef struct {
        std::string title;
        int stepsAmount;
        std::queue <std::list <char> > steps;
        std::queue <std::map <std::string, int> > stepsOptions;
    } Level;
    std::string getCurrentStepExpression(Level* level);
#endif

而我的level.cpp

#include "level.h"
std::string getCurrentStepExpression(Level* level) {
    std::string result;
    if (level)
        result = level->stepExpressions.front();
    return result;
}

一切似乎都很好,但编译者说:

..level.cpp: In function 'std::string getCurrentStepExpression(Level*)':
..level.cpp:12:19: error: 'struct Level' has no member named 'stepExpressions'

为什么它看不到我的结构字段?

你需要将stepExpressions 成员或stepExpressions()方法添加到你的结构Level 中,并传入一些索引来分步查找。

struct Level {
    std::string title;
    int stepsAmount;
    std::queue <std::list <char> > steps;
    std::queue <std::map <std::string, int> > stepsOptions;
    /* add the method stepExpressions to your class */
    std::list& stepExpressions(int step);
};
stepExpressions不是

结构的一部分。尝试添加它。