Maison > développement back-end > C++ > Comment puis-je définir des fonctions membres de modèle en dehors d'une définition de classe en C ?

Comment puis-je définir des fonctions membres de modèle en dehors d'une définition de classe en C ?

Susan Sarandon
Libérer: 2024-11-04 11:09:30
original
278 Les gens l'ont consulté

How can I define template member functions outside of a class definition in C  ?

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

En C, il est possible de définir des fonctions membres du modèle en dehors de la définition de la classe tout en conservant accès aux deux paramètres du modèle. Cette technique peut être utile pour organiser le code ou s'aligner sur certains styles de codage.

Pour y parvenir, vous devez utiliser une déclaration de modèle imbriquée. La syntaxe est la suivante :

<code class="cpp">template<class T> template <class U>
void Foo::bar() { /* implementation */ }</code>
Copier après la connexion

Cette déclaration indique que la barre de fonctions est membre de la classe Foo et que T et U sont tous deux des paramètres de modèle. Cependant, l'implémentation réelle de la fonction est fournie en dehors de la définition de la classe.

Par exemple, considérons l'extrait de code suivant :

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

template<class T> template <class U>
void Foo::bar()
{
    // Implementation using both T and U
}</code>
Copier après la connexion

Ici, la barre de fonctions est implémentée en dehors du Foo définition de classe à l’aide d’une déclaration de modèle imbriquée. Cela vous permet d'utiliser à la fois T et U dans l'implémentation de la fonction, comme si elle était définie dans la classe.

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