Spécialisation explicite des fonctions membres de modèles de classe
C permet la spécialisation explicite des fonctions membres de modèles de classe pour fournir différentes implémentations pour des types spécifiques. Pour définir une spécialisation explicite pour une fonction membre d'un modèle de classe, suivez ces étapes :
1. Entourez le modèle de classe avec une spécialisation
Lors de la spécialisation d'une fonction membre d'un modèle de classe, il est nécessaire de spécialiser également le modèle de classe environnant. Cela garantit que la fonction membre est uniquement spécialisée pour le modèle de classe spécifique auquel elle est destinée.
2. Spécialiser explicitement la fonction membre
Déclarez la fonction membre explicitement spécialisée comme suit :
template <> Type Class<Type>::MemberFunction() { ... }
Dans cette déclaration, Type représente le type spécifique pour lequel la fonction membre est spécialisée.
Exemple
Considérez le modèle de classe suivant avec un membre function :
template <class C> class X { public: template <class T> void get_as(); };
Pour spécialiser la fonction membre get_as pour le type double, vous devrez écrire :
template <> template <> void X<int>::get_as<double>() { ... }
Remarque : Spécialisation explicite des fonctions membres uniquement affecte la fonction membre spécifique et ses paramètres de type. Les autres fonctions membres et le modèle de classe environnant restent inchangés.
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!