Außerhalb der Klasse liegende Definition von Vorlagen-Member-Funktionen
In C wird beim Definieren von Template-Klassen-Member-Funktionen außerhalb der Klassendefinition Folgendes angezeigt: Es ist erforderlich, sowohl die Klassenvorlagenparameter als auch die Funktionsmember-Vorlagenparameter anzugeben. Dadurch kann die Funktion auf den Kontext sowohl der Klasse als auch der Funktionsvorlage zugreifen.
Die Syntax zum Definieren einer Vorlagenmitgliedsfunktion außerhalb der Klassendefinition lautet wie folgt:
template<class T> template <class U> void Foo<T>::bar() { // Function body }
In In diesem Beispiel ist Foo die Vorlagenklasse, T der Klassenvorlagenparameter, U der Funktionsmitgliedsvorlagenparameter und bar der Name des Funktionsmitglieds.
Um die Verwendung zu veranschaulichen, betrachten Sie den folgenden Codeausschnitt:
<code class="cpp">template <class T> class Foo { public: template <class U> void bar(); }; template<> template <class U> void Foo<int>::bar() { // Implementation that uses both T and U }</code>
In diesem Code wird das bar-Funktionselement außerhalb der Foo-Klassendefinition definiert, es hat jedoch weiterhin Zugriff auf den Klassenvorlagenparameter T und den Funktionselement-Vorlagenparameter U.
Das obige ist der detaillierte Inhalt vonWie definiere ich Template-Member-Funktionen außerhalb einer Klasse in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!