私はC++の初心者であり、小さなダンジョンクローラーゲームを作成しようとしています。現在、ヘッダーファイルで複数のベクターが宣言されていますが、複数のエラーが発生しているようです。 StackOverflowでこの問題を検索しようとしましたが、答えは実際には機能していないようです。
これが私のヘッダーファイルの1つです:(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
含む<vector>
をHero.hヘッダーに追加し、以下のコメントに記載されているようにHero.cppファイルから削除することを検討してください。
std::vector<Item> items = std::vector<Item>();
は、完全な型を宣言します。
したがって、コンパイラは、その時点でのstd::vector
のdeclarationを知る必要があります(特に、コンパイル時の評価可能な定数を確立する必要があります) sizeof Hero
)。解決策は、ヘッダーの#include <vector>
hero.h
、notソースファイルです。