2012-07-25 96 views
0

我正在研究我的嚴重C++程序。自從我參加任何課程已經有一段時間了,所以我有點生疏。當開始遊戲循環的基本實現時(在花費了大量的時間後,FOREVER讓SFML工作),我不斷遇到問題。過了一段時間,我試圖定義一個構造函數時,我的問題清單出現錯誤。嘗試編譯時出現以下錯誤。聲明構造函數時出現編譯錯誤

1> game.obj:錯誤LNK2005: 「公共:__thiscall遊戲::遊戲(無效)」 (?? 0game @@ @ QAE XZ)在main.obj已經定義

1> game.obj:錯誤LNK2005:(?gameLoop @遊戲@@ QAEXXZ): 「公共無效__thiscall 遊戲:: gameLoop(無效)」 已經在 main.obj定義

我的主要代碼

​​

在game.h它

#ifndef _game_h 
#define _game_h 

class game 
{ 
public: 
    game(); 
    void gameLoop(); 
}; 

#endif 

和game.cpp它

#include <iostream> 
#include "game.h" 

game::game() 
{ 
    std::cout << "Constructed thingie"; 
} 

void game::gameLoop() 
{ 
    std::cout << "RAN LOOP!" << std::endl; 
} 

我不知道爲什麼我遇到了此問題。任何幫助會很好,因爲我想開始我的項目。

+1

不包括主要的.cpp – lurscher 2012-07-25 21:07:37

回答

7

您應該在主要中包含#include "game.h",而不是game.cpp

+0

這隻會導致game.cpp不知道類遊戲是什麼。即使我在game.h中包含game.cpp也不知道這應該如何幫助任何東西。 - 編輯 - 沒關係。在main和game.cpp中包含game.h使得它由於某種原因被編譯。 – Legacyblade 2012-07-25 21:50:28

+0

我認爲你誤讀了,你不應該從game.cpp中刪除game.h,只需用game.h替換game.cpp。 – 2012-07-25 21:55:54

+0

是的,它工作。我只是誤解爲「將game.h包含到main.cpp」,而不是「在main.cpp中包含game.h,而不是game.cpp」。它現在正常工作:)不知道如何關閉這個問題。 – Legacyblade 2012-07-25 23:50:24

相關問題