Maison  >  Article  >  développement back-end  >  Comment définir les fonctions des membres d'un modèle en dehors de la définition de classe tout en accédant aux deux paramètres du modèle ?

Comment définir les fonctions des membres d'un modèle en dehors de la définition de classe tout en accédant aux deux paramètres du modèle ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 13:04:30864parcourir

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

Définition des fonctions membres d'un modèle en dehors de la définition de classe

La définition des fonctions membres d'un modèle en dehors de la définition d'une classe tout en autorisant l'accès aux deux paramètres du modèle peut être obtenue en utilisant une syntaxe spécialisée.

Considérez l'extrait de code suivant :

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

Pour implémenter la fonction membre bar en dehors de la définition de classe, utilisez cette syntaxe :

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

Dans cette syntaxe :

  1. La première instruction de modèle déclare le paramètre de modèle externe T.
  2. La deuxième instruction de modèle déclare le paramètre de modèle interne U.
  3. Foo spécifie la portée de la barre de fonctions membre sur la classe de modèle Foo avec le paramètre de modèle T.
  4. Les crochets angulaires imbriqués <> indique que bar est une fonction membre de modèle avec le paramètre U.

Cette syntaxe vous permet de définir la fonction membre bar en dehors de la définition de classe tout en conservant l'accès aux deux paramètres de modèle T (de la classe externe) et U (de la fonction membre).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn