」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 C++ 中定義靜態 const std::string 成員?

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

發佈於2024-12-21
瀏覽:364

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";

注意: 您嘗試的初始化語法(在類別定義內)僅支援整數和枚舉類型。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3