ホームページ  >  記事  >  バックエンド開発  >  両方のテンプレートパラメータにアクセスしながら、クラス定義の外でテンプレートメンバー関数を定義するにはどうすればよいですか?

両方のテンプレートパラメータにアクセスしながら、クラス定義の外でテンプレートメンバー関数を定義するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 13:04:30864ブラウズ

How to Define Template Member Functions Outside Class Definition While Accessing Both Template Parameters?

クラス定義外でのテンプレート メンバー関数の定義

両方のテンプレート パラメーターへのアクセスを許可しながら、クラス定義の外でテンプレート メンバー関数を定義するには、次を使用します。特殊な構文。

次のコードを考えてみましょう。スニペット:

<code class="cpp">template <class T>
class Foo
{
public:
    template <class U>
    void bar();
};</code>

クラス定義の外で bar メンバー関数を実装するには、次の構文を使用します:

<code class="cpp">template<class T> template <class U>
void Foo<T>::bar() { ... }</code>

この構文内:

  1. 最初のテンプレート ステートメントは、外側のテンプレート パラメーター T を宣言します。
  2. 2 番目のテンプレート ステートメントは、内側のテンプレート パラメーターを宣言しますU.
  3. Fooメンバー関数 bar のスコープを、テンプレート パラメーター T を使用してテンプレート クラス Foo に指定します。
  4. ネストされた山かっこ <> bar がパラメーター U を持つテンプレート メンバー関数であることを示します。

この構文により、(外部クラスの) テンプレート パラメーター T と (外部クラスの) の両方のテンプレート パラメーターへのアクセスを維持しながら、クラス定義の外側でメンバー関数 bar を定義できます。 U (メンバー関数の)。

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

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