定義const std::string 類型的靜態資料成員
在C 中,定義std::string 類型的私有靜態const 成員在類別內使用類別內初始化,如下所示,不符合C標準:
class A { private: static const string RECTANGLE = "rectangle"; }
但是,C 提供了替代方法來實現此功能。
C 17 內聯變數
從 C 17 開始,您可以為此目的使用內聯變數。內聯變數是 C 17 的功能,允許使用 inline 關鍵字直接在類別定義中聲明靜態變數。例如:
// In a header file (if necessary) class A { private: inline static const string RECTANGLE = "rectangle"; };
Pre-C 17 Approach
在C 17 之前,您必須在類別定義之外定義靜態成員並在那裡提供初始值設定項。以下是範例:
// In a header file (if necessary) class A { private: static const string RECTANGLE; };
// In one of the implementation files const string A::RECTANGLE = "rectangle";
注意: 您嘗試的初始化語法(在類別定義內)僅支援整型和枚舉類型。
以上是如何在 C 中定義靜態 const std::string 成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!