我有一個只包含靜態數據成員的C++類。 我注意到編譯器是好的,如果我將訪問方法定義爲const,如靜態或「常規」 - 所有似乎都工作。如何定義操作靜態數據成員的C++方法?
我的問題是在這種情況下正確/更好的做法是什麼?
謝謝!
我有一個只包含靜態數據成員的C++類。 我注意到編譯器是好的,如果我將訪問方法定義爲const,如靜態或「常規」 - 所有似乎都工作。如何定義操作靜態數據成員的C++方法?
我的問題是在這種情況下正確/更好的做法是什麼?
謝謝!
靜態數據成員的靜態訪問器。
如果您的課程只包含靜態成員,則應該使用singleton pattern。
如果所有方法都是靜態的,那麼創建類的實例就沒有意義了。所以我建議讓所有的方法都是靜態的,這樣你就可以在不創建類的對象的情況下使用這些方法。基本上,您將能夠使用命名空間語法來調用這些方法。
我有一個只包含靜態數據成員的C++類。
然後,這可能不應該是一個類,但要麼在名稱空間或單身的免費功能。
我仍然覺得它更容易封裝在一個指定的類,因爲它有一個特定的角色,我有很多操作這些靜態數據成員(三個不同的地圖)的方法。 – Mym 2009-11-11 06:59:27
+1 concur!你只需要一個頭文件來聲明一些函數。這些函數會改變你想要的任何靜態存儲變量。無需在課堂上申報,並使其他翻譯單位依賴於此類別聲明。 – sellibitze 2009-11-11 08:09:36
因此,翻譯單元應該是您的「抽象」(不是類),並且頭文件將是不包含任何實現細節的接口。 – sellibitze 2009-11-11 08:11:35
我的編譯器似乎不允許有靜態和常量的方法。我相信,一旦一個方法被定義爲static,那麼通過設計它就不能修改類的非靜態成員 - 因爲這個方法不屬於該類的特定實例。 – Mym 2009-11-11 06:55:45
你說得對,我的錯。 – 2009-11-11 07:01:51
謝謝。這對我有意義。 – Mym 2009-11-11 07:03:53