2017-08-16 87 views
-2

林已經定義得到這個LNK 2005錯誤,即使我已經裝箱使用正確的頭文件和CPP文件格式儘可能IM知道遊戲類。C++ LNK 2005錯誤「的.OBJ

哪個google搜索後一會兒的問題似乎是這種錯誤的主要原因,任何人都可以看到什麼是我搞砸了

我game.h文件如下:?

#pragma once 

class Game 
{ 
public: 


//Variables 
char grid[9][8] = { { '#','#','#','#','#','#','#','#' }, 
        { '#','G',' ','D','#',' ',' ','#' } , 
        { '#',' ',' ',' ','#',' ',' ','#' } , 
        { '#','#','#',' ','#',' ','D','#' } , 
        { '#',' ',' ',' ','#',' ',' ','#' } , 
        { '#',' ','#','#','#','#',' ','#' } , 
        { '#',' ',' ',' ',' ',' ',' ','#' } , 
        { '#','#','P','#','#','#','#','#' } , 
        { '#','#','#','#','#','#','#','#' } }; 
int width, height; 
int pX; 
int pY; 


char direction; 
bool west; 
bool north; 
bool south; 
bool east; 
int quit; 

Game(); 
}; 

我game.cpp文件:

#include "stdafx.h" 
#include <String> 
#include <iostream> 
#include "Game.h" 

using namespace std; 

//constructoer 
Game::Game() 
{ 
    width = 8, height = 8; 
pX = 2; 
pY = 7; 


west = false; 
north = true; 
south = false; 
east = false; 
quit = 0; 
} 

我主要是從字面上就在此刻

主要創建對象的實例:

#include "stdafx.h" 
#include <String> 
#include <iostream> 
#include "Game.cpp" 
#include "Game.h" 


using namespace std; 


int main() 
{ 
    Game g; 

    return 0; 
} 
+1

你的main()函數在哪裏? –

+1

@theRoadToCodeOverload不要在註釋中放置代碼,但是請編輯您的問題並將該代碼放在_there_處。 –

+1

@theRoadToCodeOverload A [MCVE]和逐字錯誤文本請。 – user0042

回答

1

當包括game.cpp,實際實現構造器Game::Game()兩次,game.cpp即一個時間(這是一個單獨的翻譯單元)和main.cpp(包含構造函數實現代碼的地方)中的一次。 因此,你會得到一個鏈接器錯誤,而不是編譯器錯誤。

要解決此問題,請刪除#include "game.cpp"