2013-02-20 22 views
5

在我們的應用程序中,有如下所示的通用類(例如保存項目配置參數的類)。從整個項目中訪問一般使用類

class DB{ 
public: 
int projectVersion 
int somethingSoMuchImportantAllOverTheProject 
}; 
extern DB* pDB; 

因爲所有其他類都會使用這個類,所以它們都需要以某種方式訪問​​它。我們的解決方案是將「extern DB * pDB;」在它的頭文件下面,所以任何需要它的人都可以在包含頭文件後訪問它。我想也許有更好的解決方案,並希望得到你的想法,這個一般情況下。

+1

它是否需要指針? – 2013-02-20 12:29:52

+4

我刪除了'c'標籤,這顯然是C++。 – unwind 2013-02-20 12:30:25

+1

你在說什麼是一個簡單的全局變量(以另一種形式)。因此,爲了提出更好的選擇,需要看到整個畫面,因爲它是設計考慮因素,而不僅僅是語法。 – KBart 2013-02-20 12:33:36

回答

1

這是一個單身人士。你可以找到很多關於它的討論,但重要的是,隱藏類的構造函數,以便類的用戶被迫使用一個對象。

+0

單身人士模式會有很好的改善,但我也在問如何更好地將這個對象與其他類聯繫起來。 – 2013-02-20 12:45:33

+0

我不確定你的意思是「鏈接」它......我假設你不是指構建過程的鏈接部分。只需在代碼中直接「使用」它,例如通過'pDB-> projectVersion'檢查版本。 – mark 2013-02-20 12:47:58

+0

我提到過這個問題,因爲我知道singleton是通過只允許它的一個實例來創建對象。但是我不確定把對象指針放在頭文件中,比如「extern DB * pDB;」在這個例子中。 – 2013-02-20 12:55:18

相關問題