类中的向量.C2065错误

Vector inside a class. C2065 error

本文关键字:C2065 错误 向量      更新时间:2023-10-16

我在类中有自己对象的向量。但当我想用这个向量做某事时,我会出错:/
game.h

#include "renderSystem.h" //there only  #include "console_color.h"
#include "level.h" //there only #include "renderSystem.h"
#include "gameObject.h"
class Game {
    vector<GameObject> objects;
    //something
public:
    Game();
    //something
};

game.cpp

void Game::initialize() {
    GameObject playerObject(GameObjectType_Player);
    objects.insert(objects.end(), playerObject);
    //something
}

gameObject.h

#include "renderSystem.h"
#include "level.h"
class GameObject {
    //something
public:
    GameObject(GameObjectType _type);
    GameObject() : GameObject(GameObjectType_None) {};
    //something
};

错误是(我不能给你日志,因为它们在俄语上:/)

C2065 at game.cpp "objects.insert"
C2143 at game.h "vector<GameObject> objects"
C2228 at game.cpp "objects.insert"
C2238 at game.h "vector<GameObject> objects"
C4430 at game.h "vector<GameObject> objects"

我检查了#includes,但可能我很愚蠢:/
在每个文件中,我都有一次#pragma
在renderSystem和级别中,我只写了
Wtf
Visual studio 2015
//我的时间是凌晨0:43,所以我可能只需要睡觉:/

这里有两个问题,一是没有包含矢量头文件。第二个是向量类位于C++中的std::命名空间中。这里有两个可能的解决方案。

#include <vector> /* STL vector */
#include "renderSystem.h" //there only  #include "console_color.h"
#include "level.h" //there only #include "renderSystem.h"
#include "gameObject.h"
class Game {
private:
    std::vector<GameObject> objects;
public:
    Game();
};

#include <vector> /* STL vector */
#include "renderSystem.h" //there only  #include "console_color.h"
#include "level.h" //there only #include "renderSystem.h"
#include "gameObject.h"
using namespace std;
class Game {
    vector<GameObject> objects;
    //something
public:
    Game();
    //something
};