Maison > développement back-end > C++ > Comment spécialiser explicitement les fonctions membres d'un modèle de classe en C ?

Comment spécialiser explicitement les fonctions membres d'un modèle de classe en C ?

Mary-Kate Olsen
Libérer: 2024-12-02 05:06:10
original
918 Les gens l'ont consulté

How Do I Explicitly Specialize Class Template Member Functions in C  ?

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() { ... }
Copier après la connexion

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();
};
Copier après la connexion

Pour spécialiser la fonction membre get_as pour le type double, vous devrez écrire :

template <>
template <>
void X<int>::get_as<double>() { ... }
Copier après la connexion

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!

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