シェイプ ファクトリなどのクラスのプライベート静的定数文字列を定義しようとすると、障害に遭遇する可能性があります。 C コンパイラを使用します。これは、C 標準によって課された制限によるものです。この課題を克服し、静的な const 文字列データ メンバーを確立するには、次の解決策を検討してください。
C 17 で導入されたインライン変数を利用すると、便利な静的 const 変数を定義する効率的な方法:
class A { private: inline static const string RECTANGLE = "rectangle"; };
C 17 より前のバージョンでは、クラスの外で静的メンバーを定義し、初期化子を個別に提供する必要があります。
class A { private: static const string RECTANGLE; };
const string A::RECTANGLE = "rectangle";
内部に初期化子を含む構文に注意することが重要です。クラス定義は整数型と列挙型のみに予約されています。
#define は定数を定義するのに魅力的に見えるかもしれませんが、望ましくないレベルのグローバルな可視性を導入します。たとえば、定数がヘッダー ファイルで定義されている場合、プログラムのすべての部分からグローバルにアクセスできるようになります。これにより、潜在的な問題の中でも特に、同じ定数を定義する別の実装との名前の競合が発生する可能性があります。
以上がC でプライベート静的定数文字列データ メンバーを定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。