構文エラー : ';' が '<' の前にありません。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
LisetteLander
記事: 147
登録日時: 13年前
住所: 東京

構文エラー : ';' が '<' の前にありません。

#1

投稿記事 by LisetteLander » 11年前

vectorを使用し始めたら構文エラーが出始めたのですが
どこの行が悪いのかわかりません。
vectorは他のファイルを作成する時に同じ構文でエラーがでませんでした。
どうすれば以下のエラーが解決するでしょうか?

コード:

MapObjectListItem.h(13): error C2143: 構文エラー : ';' が '<' の前にありません。
MapObjectListItem.h(13): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
MapObjectListItem.h(13): error C2238: ';' の前に無効なトークンがあります。
HitBox.h,HitCircle.h,HitLine.hはHit.hをインクルードします。

MapObjectListItem.h

コード:

#ifndef DEF_MapObjectListItem
#define DEF_MapObjectListItem
//配置オブジェクトを設定します。
#include <vector>
#include "Hit.h"
#include "Object.h"
#include "Define.h"

class CMapObjectListItem : public CObject{
private:
	int ObjectID;

	vector<CHit*> HitArea;
public:
	void SetObjectID(int);

	void AddHitArea(CHit*);
};
#endif
MapObjectListItem.cpp

コード:

#include "MapObjectListItem.h"
#include "HitBox.h"
#include "HitCircle.h"
#include "HitLine.h"

void CMapObjectListItem::SetObjectID(int a){}

void CMapObjectListItem::AddHitArea(CHit* tmpHitArea){}

AliceCoder
記事: 51
登録日時: 11年前

Re: 構文エラー : ';' が '<' の前にありません。

#2

投稿記事 by AliceCoder » 11年前

おそらくstd::が抜けているのが原因と思われます。
stdという名前空間に含まれているのでstd::vector<int> name;みたいに書かないといけないはずです
教科書などではusing namespace std;を最初にかけば次からstd::を省略できると書いてあります
using namespace std;を使う前に加えればおそらくエラーはなくなるはずです

アバター
LisetteLander
記事: 147
登録日時: 13年前
住所: 東京

Re: 構文エラー : ';' が '<' の前にありません。

#3

投稿記事 by LisetteLander » 11年前

うああ、それでした!
STL使い慣れてないのでusingなんて発想がなかったです。
ありがとうございました!

naohiro19
記事: 256
登録日時: 13年前
住所: 愛知県

Re: 構文エラー : ';' が '<' の前にありません。

#4

投稿記事 by naohiro19 » 11年前

using namespace std;
とは
「std名前空間を使うので省略してください」というプリプロセッサです。

beatle
記事: 1281
登録日時: 12年前
住所: 埼玉
連絡を取る:

Re: 構文エラー : ';' が '<' の前にありません。

#5

投稿記事 by beatle » 11年前

ちなみにヘッダファイルに
using namespace std;
などとusingを使うのはテロですのでやめましょう。
ヘッダファイル内では常にstd::を使います。

*なぜテロなのかというと、std名前空間とは関係ないはずのヘッダを読み込んだだけでstd内の名前が全部漏洩してしまい、意図しない名前の衝突が発生しやすくなるからです。

閉鎖

“C言語何でも質問掲示板” へ戻る