クラス定義での静的 const 整数メンバーの定義: 探索
C では、クラス定義内で静的 const 整数メンバーを宣言できます。ただし、このコンテキストでは、初期化と定義の違いを理解することが重要です。
提供されたコード例では、
class test { public: static const int N = 10; };
クラス内の N の宣言により、値が初期化されます。 10. ただし、これは定義と同等ではありません。発生したリンカー エラーを解決するには、クラス定義の外で N を別個に定義する必要があります。これは、次のような名前空間スコープ定義を通じて実現できます。
const int test::N = 10;
また、constexpr キーワードを使用すると、静的 const 整数メンバーの宣言と定義の両方を 1 つのステップで行うことができ、別個の定義:
class test { public: static constexpr int N = 10; };
std::min が呼び出される場合、参照によって渡されるパラメーターが期待されます。 N は静的な const 整数として宣言されているため、参照要件を満たすために定義する必要があります。 std::min への呼び出しをコメントアウトすると、N の定義は不要になるため、コードはコンパイルできますが、N は引き続き参照されます。
要約すると、C では静的 const 整数メンバーを内部で初期化できます。クラス定義と同様に、値を参照するには別途定義が必要です。これは、名前空間スコープ定義を通じて、または constexpr キーワードを使用することによって実現できます。
以上がC で静的 Const 整数クラス メンバーを適切に定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。