型 const std::string の静的データ メンバーの定義
C で、型 std::string のプライベート静的 const メンバーを定義する以下に示すように、クラス内初期化を使用するクラス内では、C に準拠していません。標準:
class A { private: static const string RECTANGLE = "rectangle"; }
ただし、C では、この機能を実現するための代替アプローチが提供されています。
C 17 インライン変数
C 17 以降、次のことができます。この目的にはインライン変数を使用します。インライン変数は、inline キーワードを使用して、クラス定義内で静的変数を直接宣言できるようにする C 17 の機能です。例:
// In a header file (if necessary) class A { private: inline static const string RECTANGLE = "rectangle"; };
C 17 より前のアプローチ
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 中国語 Web サイトの他の関連記事を参照してください。