Maison >développement back-end >C++ >Comment réaliser une spécialisation partielle d'une fonction membre au sein d'une classe modèle en C ?
Spécialisation partielle des fonctions membres de classe
Contrairement aux fonctions régulières, la spécialisation partielle uniquement d'une fonction membre au sein d'une classe modèle n'est pas autorisée en C . Au lieu de cela, il est nécessaire de spécialiser partiellement la classe entière.
Pour obtenir une spécialisation partielle d'une fonction membre, les étapes suivantes doivent être suivies :
Par exemple, pour créer une spécialisation partielle pour la fonction membre Deform() dans le code donné où nValue est égal à 0, le code suivant montre comment corriger le code d'origine :
// Partial specialization of the Object class for nValue = 0 template <> class Object<int, 0> { private: int m_t; Object(); public: Object(int t): m_t(t) {} int Get() { return m_t; } Object& Deform() { std::cout << "Specialized\n"; m_t = -1; return *this; } };
Avec ces modifications, le code spécialisera désormais correctement partiellement la fonction Deform() fonction membre pour nValue égale à 0.
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!