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>
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>
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!