Maison > développement back-end > C++ > le corps du texte

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
Libérer: 2024-11-03 13:04:30
original
862 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal