CPP标头文件结构错误

时间:2013-11-06 23:31:27

标签: c++ struct header

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

一切似乎都没问题,但是compiller说:

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

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

2 个答案:

答案 0 :(得分: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);
};

答案 1 :(得分:1)

stepExpressions不属于您的结构。 尝试添加它。