首頁 > 後端開發 > C++ > 如何在 C 中定義靜態 const std::string 成員?

如何在 C 中定義靜態 const std::string 成員?

Linda Hamilton
發布: 2024-12-19 03:48:09
原創
973 人瀏覽過

How to Define Static const std::string Members in C  ?

定義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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板