型 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";
注: (クラス定義内で) 試みた初期化構文は、整数型と列挙型でのみサポートされます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3