Heim  >  Artikel  >  Backend-Entwicklung  >  Wie definiere ich Template-Member-Funktionen außerhalb einer Klasse in C?

Wie definiere ich Template-Member-Funktionen außerhalb einer Klasse in C?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 11:19:03263Durchsuche

How to Define Template Member Functions Outside a Class in C  ?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn