Heim > Artikel > Backend-Entwicklung > Wie können Sie eine teilweise Spezialisierung einer Mitgliedsfunktion innerhalb einer Vorlagenklasse in C erreichen?
Teilweise Spezialisierung von Klassenmitgliedsfunktionen
Im Gegensatz zu regulären Funktionen ist die teilweise Spezialisierung nur einer Mitgliedsfunktion innerhalb einer Vorlagenklasse in C nicht zulässig. Stattdessen ist es notwendig, die gesamte Klasse teilweise zu spezialisieren.
Um eine teilweise Spezialisierung einer Mitgliedsfunktion zu erreichen, sollten die folgenden Schritte unternommen werden:
Zum Beispiel, um eine Teilspezialisierung für zu erstellen Wenn Sie die Deform()-Mitgliedsfunktion im angegebenen Code verwenden, wobei nValue gleich 0 ist, zeigt der folgende Code, wie Sie den ursprünglichen Code korrigieren können:
// 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; } };
Mit diesen Änderungen wird der Code die Deform() nun korrekt teilweise spezialisieren Mitgliedsfunktion für nValue gleich 0.
Das obige ist der detaillierte Inhalt vonWie können Sie eine teilweise Spezialisierung einer Mitgliedsfunktion innerhalb einer Vorlagenklasse in C erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!