2015-04-29 37 views
1

好吧,基本上我需要使用Allegro 5和C++創建一個簡單的遊戲。我想將它分成單獨的模塊,因此管理起來更容易。我的問題是:管理不同文件之間「移動」的正確方法是什麼?具體來說,我想有一個名爲Menu.cpp的文件,它將成爲主文件,然後根據用戶選擇的內容,它執行其他文件中指定的內容,如Singleplayer.cpp或Options.cpp(這是甚至是一個好的方法?)。我的想法是做這樣的:C++ - 需要關於如何正確設計多文件程序的建議

//Menu.cpp 
#include "Singleplayer.h" 

int main() 
{ 
int parameter; 
if(user_selects_singleplayer) singleplayer(parameter); 
return 0; 
} 


//Singleplayer.cpp 
void singleplayer(int parameter) 
{ 
... 
handle_singleplayer 
... 
} 

//Singleplayer.h 
#ifndef SINGLEPLAYER_H 
#define SINGLEPLAYER_H //or maybe #pragma once ? 

void singleplayer(int parameter); 

#endif 

我想知道,如果它做一個適當的方式,如果是這樣,我是否應該有一個Singleplayer.cpp main()函數(和如何更改文件以使其工作)以及是否需要在Singleplayer.cpp中包含Singleplayer.h。

在我的例子中,我省略了一些東西,如包括allegro庫,初始化更多變量等,以使總體思路更清晰。另外我想說明的是,我不能使用類和流(我知道它很愚蠢,但這是一個需求,因爲這個項目是編程類的作業分配)。

編輯:由@Leiaz鏈接的問題是相關的,它的答案當然有助於理解標題如何工作,但我的問題是更多關於正確的設計方法。無論如何,感謝你的答案,我一定會讀到這個問題。

+0

也許你應該下載一些開源項目並從中獲取想法。 – ern0

+0

閱讀關於設計模式的書籍,構建它的軟件是一個非常廣泛的問題。 – cerkiewny

+0

你應該只有一個'main'函數(你的程序進入這裏)。把你的項目設計爲模塊化是好的,但是看看使用'classes'而不僅僅是函數('OOP'背後的關鍵思想)。 – Kvothe

回答

0

這裏有一些規則,應在大多數情況下工作:

  • 每CPP˚F ILE具有被包括在CPP

    main.cpp包括main.h內的h文件, Singleplayer.cpp包括Singleplayer.h

  • 類定義和函數原型是在頭文件,執行在於cpp文件

    H:int add(int x, int y); CPP:int add(int x, int y){ return x+y; }

  • 只包含頭文件,從未包括cpp文件

    避免多個定義的問題,因爲頭部有代碼衛士(您定義)和CPP沒有

  • 只包括你的實際需要,以減少編譯時間

    不要做出all.h包括每個頭文件你有。

  • 如果可能,請在cpp文件中包含h文件。如果需要,請將其包含在標題中。

    減少了編譯時間和避免循環引用

你應該做如何正確的設計一個C++項目,瞭解其背後的原理一些研究。

0

你在這裏混合了幾個不同的東西。首先,使用多個文件很容易,只需在你的項目中創建它們,然後在頂部寫上「#include」name.h「就可以將它們包含在其他文件中。通常你想在這些頭文件中有類而不是純粹的我推薦閱讀這些內容,因爲在繼續之前知道它是一個非常基本的概念。

至於它的代碼設計有多好,你可能想看看狀態機,一旦你知道如何構造一個項目,並創建類:)

相關問題