型 const std::string の静的データ メンバーの定義
C では、クラスのプライベート静的定数を定義するのが難しい場合があります標準の const std::string 型を使用する場合。表示されるエラー メッセージは、使用されているメソッドが ISO C 標準に準拠していないことを示しています。
#define ディレクティブを使用せずにプライベート リテラル定数を定義するには、次の 2 つの方法を検討してください。
インライン変数 (C 17 以降)
C 17 以降、インライン変数は定数初期化子を使用して静的データ メンバーを宣言するために使用されます。これは、クラス定義内の静的宣言の前に inline キーワードを追加することで行われます。
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 中国語 Web サイトの他の関連記事を参照してください。