C ++ - 错误:'list'没有命名类型(列表对象作为类中的成员变量)

时间:2014-02-07 20:28:53

标签: c++ class stdlist

我一直在遇到“'xxx'没有命名类型”错误很多,我之前读过的大多数帖子都提到过这个错误会出现一些依赖性问题。但是,我似乎无法找到我的。这就是我得到的:

GameLib.h

#ifndef GAMELIB_H_
#define GAMELIB_H_

//Structures
struct player_t {
    std::string name;
    int MMR;
};

//Prototypes
void* queueUpPlayer(void*);
int randomMMR();
std::string randomName();

#endif /* GAMELIB_H_ */

PlayerGroup.h

#ifndef GROUP_H_
#define GROUP_H_

class playerGroup {
private:
    std::list<player_t> players;
    std::list<player_t>::iterator it;
    const int totalSize = 10;

public:
    //Constructor
    playerGroup();

    //Destructor
    ~playerGroup();

    //Add
    void add(const player_t p);

    ....
};

#endif /* GROUP_H_ */

PlayerGroup.cpp

#include <iostream>
#include <cstdlib>
#include <string>
#include <cmath>
#include <list>

#include "GameLib.h"
#include "playerGroup.h"

using namespace std;

playerGroup::playerGroup() {}

playerGroup::~playerGroup() {}

void playerGroup::add(const player_t p) {
    if(players.size() >= totalSize) exit(1);
    players.push_back(p);
}

.....

我在PlayerGroup类的列表成员变量中收到此错误:

..\src\PlayerGroup.h:13:2: error: 'list' in namespace 'std' does not name a type
..\src\PlayerGroup.h:14:2: error: 'list' in namespace 'std' does not name a type

提前感谢您的所有帮助!

1 个答案:

答案 0 :(得分:14)

我相信你需要在你的PlayerGroup.h文件中#include <list>,因为它在该文件中使用。