首先,讓我告訴你,我是C++的超級noob。所以,如果我問一些愚蠢的事,對不起,但我完全陷入困境。在頭文件中聲明指針? (C++)
我試圖將我在AS3中編寫的小遊戲引擎移植到C++,並且我已經開始使用核心遊戲類。它必須存儲這些關卡,以更新和管理它們,所以我認爲指針是最好的選擇。
標題是這樣的:
#pragma once
#include "Level.h"
class Game
{
public:
Level *level;
Level *nextLevel;
Game(void);
virtual ~Game(void);
virtual void begin();
virtual void onEveryFrame();
private:
void changeLevel();
};
而且編譯器會引發我對每一個指針聲明兩個錯誤:
錯誤1個錯誤C2143:語法錯誤:缺少 ';'之前'*'
錯誤2錯誤C4430:缺少類型說明符 - int假定。注意:C++ 不支持default-int
那麼,我在做什麼錯了?錯誤描述對我來說看起來不太具有描述性。
(我使用VS 2012快車)
編輯:
對不起你們!看起來像是一個循環依賴問題。實際上與指針無關。
的 「Level.h」 是這樣的:
#pragma once
#include "Game.h"
class Level
{
public:
Game *game;
Level(void);
virtual ~Level(void);
virtual void begin();
virtual void onEveryFrame();
};
對不起球員,小白錯誤。 :(
'Level.h'看起來像什麼?另一方面,因爲你只是在學習C++,所以讓我告訴你,指針(特別是像你這樣的裸指針)很少是「走的路」。 – Chad
如果您剛開始使用C++,請不要使用原始指針。 –
+1快速學習:-)))。 @Bartek我不同意「不使用原始指針」的建議 - 它是C/C++ - 你必須學習!是的,他們是危險的,但是在C/C++等低級語言中避免它們的代價非常昂貴。我應該避免在C++中索引'[]'和'new'運算符嗎? ;-)。 –