ホームページ >バックエンド開発 >C++ >C でプライベート静的定数文字列データ メンバーを定義するにはどうすればよいですか?

C でプライベート静的定数文字列データ メンバーを定義するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-25 04:20:14316ブラウズ

How Can I Define Private Static Constant String Data Members in C  ?

静的定数文字列データ メンバーの実現: 包括的なガイド

シェイプ ファクトリなどのクラスのプライベート静的定数文字列を定義しようとすると、障害に遭遇する可能性があります。 C コンパイラを使用します。これは、C 標準によって課された制限によるものです。この課題を克服し、静的な const 文字列データ メンバーを確立するには、次の解決策を検討してください。

インライン変数 (C 17 以降)

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

#define は定数を定義するのに魅力的に見えるかもしれませんが、望ましくないレベルのグローバルな可視性を導入します。たとえば、定数がヘッダー ファイルで定義されている場合、プログラムのすべての部分からグローバルにアクセスできるようになります。これにより、潜在的な問題の中でも特に、同じ定数を定義する別の実装との名前の競合が発生する可能性があります。

以上がC でプライベート静的定数文字列データ メンバーを定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。