Maison  >  Article  >  développement back-end  >  Comment définir des fonctions membres de modèles en dehors d’une classe en C ?

Comment définir des fonctions membres de modèles en dehors d’une classe en C ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 11:19:03263parcourir

How to Define Template Member Functions Outside a Class in C  ?

Définition hors classe des fonctions membres du modèle

En C, lors de la définition des fonctions membres de la classe modèle en dehors de la définition de la classe, il est nécessaire de spécifier à la fois les paramètres du modèle de classe et les paramètres du modèle de membre de fonction. Cela permet à la fonction d'accéder au contexte à la fois de la classe et du modèle de fonction.

La syntaxe pour définir une fonction membre du modèle en dehors de la définition de la classe est la suivante :

template<class T> template <class U>
void Foo<T>::bar() {
  // Function body
}

Dans dans cet exemple, Foo est la classe du modèle, T est le paramètre du modèle de classe, U est le paramètre du modèle du membre de la fonction et bar est le nom du membre de la fonction.

Pour illustrer l'utilisation, considérons l'extrait de code suivant :

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

template<> template <class U>
void Foo<int>::bar() {
  // Implementation that uses both T and U
}</code>

Dans ce code, le membre de la fonction bar est défini en dehors de la définition de la classe Foo, mais il a toujours accès à la fois au paramètre de modèle de classe T et au paramètre de modèle de membre de fonction U.

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