首頁 >後端開發 >C++ >如何在 C 中定義私有靜態常數 `std::string` ?

如何在 C 中定義私有靜態常數 `std::string` ?

Linda Hamilton
Linda Hamilton原創
2024-12-27 09:36:13254瀏覽

How to Define a Private Static Constant `std::string` in C  ?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn