![](/img/trans.png)
[英]Are the static data members and static methods of a class in C++ static objects?
[英]C++ class with all members and methods static
我有一個具有多個類的程序,並且有一個類具有所有成員和靜態方法的類,具有以下內容:兩個成員和兩個方法,用於在開始時對其進行初始化。 同樣,我的靜態課程中的所有成員都是公開的。 我的問題是,這是不好的做法還是有更好的方法呢? 我僅在另一個類中使用該類的成員。
始終避免創建無用的符號 。
如果不需要類,請在名稱空間中創建一組函數。 如果您的函數集需要處理一些數據,則可以使用靜態類/單例。
設計應用程序時,我的規則是避免擁有可在任何地方調用的內容。
限制自己越多 (或者對於庫而言, 限制 用戶), 代碼越安全 (由於錯誤的使用而導致的錯誤少)。
如果您確實需要制作一個靜態類,我建議您使用這樣的構造函數:
class Foo
{
public:
Foo() = delete;
};
它避免了不可實例的類和完全靜態的類之間的混淆。
如果您喜歡蓬勃發展,則可以設置以下內容:
#define STATIC_CLASS(class_name) public: class_name() = delete
class Foo
{
STATIC_CLASS(Foo);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.