Heim  >  Artikel  >  Backend-Entwicklung  >  Wie definiere ich eine Template-Member-Funktion außerhalb der Klassendefinition?

Wie definiere ich eine Template-Member-Funktion außerhalb der Klassendefinition?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 01:01:30612Durchsuche

How to Define a Template Member Function Outside of the Class Definition?

Definieren einer Template-Member-Funktion außerhalb der Klassendefinition

Bei der Template-Programmierung kann es notwendig sein, eine Template-Member-Funktion außerhalb von zu definieren die Klassendefinition unter Beibehaltung des Zugriffs auf beide Vorlagenparameter.

Beachten Sie den folgenden Codeausschnitt:

<code class="cpp">template <class T>
class Foo
{
public:
    template <class U>
    void bar();
};</code>

Um die Balkenfunktion außerhalb der Klassendefinition zu implementieren, können wir die folgende Syntax verwenden:

<code class="cpp">template<class T> template <class U>
void Foo<T>::bar() { ... }</code>

Diese Syntax teilt dem Compiler mit, dass die Bar-Funktion eine Mitgliedsfunktion der Foo-Klasse mit einem Template-Parameter T ist. Innerhalb der Definition von bar können wir sowohl auf T als auch auf den zusätzlichen Template-Parameter U zugreifen benötigt.

Zum Beispiel:

<code class="cpp">template<class T> template <class U>
void Foo<T>::bar()
{
    std::cout << "T: " << typeid(T).name() << ", U: " << typeid(U).name() << std::endl;
}</code>

Dieser Code gibt die Namen der T- und U-Vorlagenparameter aus, wenn die Balkenfunktion aufgerufen wird.

Das obige ist der detaillierte Inhalt vonWie definiere ich eine Template-Member-Funktion außerhalb der Klassendefinition?. 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