ホームページ >バックエンド開発 >C++ >C で静的 Const 整数クラス メンバーを適切に定義するにはどうすればよいですか?

C で静的 Const 整数クラス メンバーを適切に定義するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-01 08:29:11555ブラウズ

How Do I Properly Define Static Const Integer Class Members in C  ?

クラス定義での静的 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 サイトの他の関連記事を参照してください。

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