我是C++的新手,我試圖製作一個小地牢爬蟲遊戲。目前我有多個向量在我的頭文件中聲明,但他們似乎給出了多個錯誤。我試圖在StackOverflow上搜索這個問題,但答案似乎並不奏效。錯誤C2039:'vector':不是'std'的成員
這裏是我的頭文件之一:(Hero.h)
#pragma once
class Hero {
public:
Hero();
std::string name;
int experience;
int neededExperience;
int health;
int strength;
int level;
int speed;
std::vector<Item> items = std::vector<Item>();
void levelUp();
private:
};
這裏是我的.cpp文件:(Hero.cpp)
#include "stdafx.h"
#include <vector>
#include "Hero.h"
#include "Item.h"
Hero::Hero() {
}
void Hero::levelUp()
{
};
就像我說我是新來的C++,所以我的代碼可能會比我知道的更多。這只是一個測試。
下面是那些在Visual Studio 2015年的錯誤列表中顯示的錯誤:
Error C2039 'vector': is not a member of 'std' CPPAssessment hero.h 13
Error C2143 syntax error: missing ';' before '<' CPPAssessment hero.h 13
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int CPPAssessment hero.h 13
Error C2238 unexpected token(s) preceding ';' hero.h 13
不太確定這個答案。在cpp文件中,vector.h在hero.h之前包含,所以它應該沒問題。你建議的是好的建議,但根據OP的信息,這裏不會有問題。話雖如此,這種錯誤幾乎總是由一個缺失的標題引起的,所以可能是OP的信息不正確。 – paxdiablo
@paxdiablo你是對的。我要刪除這個答案。 – 2016-09-29 08:29:22
@paxdiablo雖然我們不知道。如果stdafx.h包含hero.h,它不會讓我感到驚訝,導致它在vector之前被解析。 – hvd