我已經閱讀了大量的帖子和文章,但我無法找到明確的答案。C++,靜態與命名空間vs.單身
我有一些類似的功能,我想超出全球範圍的功能。其中一些需要公開,其他應是私人的(因爲它們只是「公共」的輔助功能)。 此外,我不只有函數,而且還有變量。只有「私人」輔助功能需要它們,並且應該是私人的。
現在有三種方式:
- 做的一切是靜態類(禁忌:潛在的「無法調用成員函數沒有對象」 - 不是一切都需要是靜態的)
- 做一個單身類(魂鬥羅:我需要的對象)
- 作出命名空間(沒有私人關鍵字 - 爲什麼我應該把它放在一個命名空間的話,那麼?)
,會是什麼方式,爲我取?將這些方法結合起來的可能方法是什麼?
我認爲是這樣的:
- 做一個單身,靜態函數使用單對象的輔助功能(這是可能的,我仍然在類中,但訪問它的一個目標是?型)
- 構造方法中調用PROGRAMM處開始,初始化一切( - >確保靜力學可以從單獨的對象只能通過MyClass的:: PublicStaticFunction()
謝謝。
不要使用單身,除非喲你真的需要(即。幾乎從不)。一個很好的討論是http://www.ibm.com/developerworks/webservices/library/co-single/index.html – 2011-04-26 16:32:25