2011-08-24 37 views
0

爲了保持main()(在C++中)儘可能乾淨/小巧,有幾個選項可以選擇,但哪些最好?初始化main中的所有變量,在main之外初始化它們作爲全局,全局in .h,在主要中初始化它們但在別處設置值(通過將它們傳遞給函數)。可能還有其他方法,但保持main()儘可能清潔/清晰/儘可能小的最佳方法是什麼?如何清理雜亂的main()?

+4

有沒有「最好」的方式。對於任何事情,永遠。事實上,在這種情況下,我甚至不認爲這個目標實際上是有價值的。 –

+2

這太模糊了,以目前的形式回答,並且很可能會產生一堆意見。做你認爲有意義的人,在你之後維護代碼... – Nim

+0

你們都有一個有效的觀點。 – Rhexis

回答

2

有一些常見的模式,像封裝數據和操作在類的有意義的。例如,如果從文件處理命令行參數或配置,則可以創建一個Config類,該類可以從argcargv和/或可能的文件初始化,然後將其用作用戶可控參數的存儲。

另一種常見的圖案被所有的main移動到一個類,包含狀態成員屬性,並且具有run(或main稱其爲你願意)成員函數。這允許一個簡單的main重構,你不必通過所有的狀態作爲函數參數。有時這兩個選項是混合的,並且類從main的參數初始化。

沒有明確的答案,因爲它取決於你main是目前做的,在某些情況下,它仍然是有意義保持長上下的主如果不同部分有清晰的分隔,這是不是長,其中長上下的是主觀的措施......

9

避免像豬流感這樣的全局/單例,這是一種不好的做法,可能對較大的多線程項目產生非常不好的影響。看到你正在使用C++,你可以用你的應用程序到具有一切很好地分解成套房,爲您/您的編碼風格,然後在主所有你需要做一種風格的一大管理器類型類:

int main(int argc, char** argv) 
{ 
    Application MyApp(argc,argv); 
    return MyApp.start(); 
} 

這是相當整潔的