下面的类会吐出大约20个错误,但如果我注释掉了矢量子弹,那么它似乎一切都很好。我错过了一些明显的错误吗?
#include <vector>
#include "SDL.h"
#include "Bullet.h"
#ifndef GAMEDATA_H
#define GAMEDATA_H
class GameData
{
public:
GameData();
~GameData();
GameData(const GameData& data);
GameData& operator=(const GameData* rhs);
vector<Bullet> bullets;
SDL_Surface* shipimage;
SDL_Surface* bulletimage;
};
#endif
答案 0 :(得分:7)
vector
位于名称空间std
内。将您bullets
声明修改为:
std::vector<Bullet> bullets;
答案 1 :(得分:2)
vector
在namespace std
中声明。将类型更改为std::vector
,一切都会好的。
在源文件中,如果您过度使用std
成员,您可能会发现声明它很有用:
using namespace std;
在任何其他代码行之前。这样您就可以在没有std
限定符的情况下访问std::
成员。这就是为什么你没有看到大多数例子前面的std::
- 他们宣布这个指令。