ホームページ >バックエンド開発 >C++ >C クラス テンプレートで非整数の静的データ メンバーを定義するにはどうすればよいですか?

C クラス テンプレートで非整数の静的データ メンバーを定義するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-01 18:46:12130ブラウズ

How Do I Define Non-Integral Static Data Members in C   Class Templates?

クラス テンプレートでの静的データ メンバーの定義

クラス テンプレートを使用する場合、そうでない静的データ メンバーを宣言するという課題が発生する場合があります。一体型です。これは、クラス テンプレート内に存在する静的データ メンバーに依存するコードがあるが、そのテンプレート パラメーターによって決定されない場合に発生します。

この問題に対する 1 つの解決策は、ヘッダー ファイルで静的データ メンバーを定義することです。クラステンプレートが宣言されている場所。これにより、メンバーがテンプレート クラス定義の外で宣言され、個別に初期化できるようになります。

たとえば、次のクラス テンプレートを考慮します。

template <typename T>
struct S
{
    ...
    static double something_relevant;
};

静的メソッドを定義できます。次のように、同じヘッダー ファイル内にデータ メンバー something_relevant を追加します。

template <typename T>
double S<T>::something_relevant = 1.5;

このアプローチでは、静的データ メンバーの定義がクラスから分離されます。テンプレートを使用して、それを個別に初期化できるようにします。さらに、これはテンプレートの一部であるため、コンパイラはそれが 1 回だけ定義されることを保証し、複数の定義を防ぎます。

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

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