定義const std::string 類型的靜態資料成員
在C 中,為類別定義私有靜態常數可能具有挑戰性當使用標準const std::string 類型時。遇到的錯誤訊息表示所使用的方法不符合 ISO C 標準。
要在不使用#define 指令的情況下定義私有文字常數,請考慮以下兩種方法:
內嵌變數(C 17 及更高版本)
自C 17 起,內聯變數可用來宣告靜態資料具有常數初始值設定項的成員。這是透過在類別定義中的靜態聲明之前添加內聯關鍵字來完成的:
class A { private: inline static const std::string RECTANGLE = "rectangle"; };
類別定義之外的定義(C 17 之前)
之前C 17、靜態成員必須在類別定義之外定義並單獨初始化。類別定義中的靜態宣告是在沒有初始化器的情況下進行的:
class A { private: static const std::string RECTANGLE; }; // In an implementation file const std::string A::RECTANGLE = "rectangle";
請注意,在類別定義中使用非整數類型直接初始化靜態成員的語法僅允許用於整數和枚舉類型。
以上是如何在 C 中定義私有靜態常數 `std::string` ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!