-2

这是我的标题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'

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

4

2 回答 2

2

您需要将 stepExpressions 成员或 stepExpressions() 方法添加到您的 struct 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);
};
于 2013-11-06T23:40:37.137 回答
1

stepExpressions不是您的结构的一部分。尝试添加它。

于 2013-11-06T23:37:57.540 回答