Heim  >  Artikel  >  Backend-Entwicklung  >  Wie definiere ich Template-Member-Funktionen außerhalb der Klassendefinition, während ich auf beide Template-Parameter zugreife?

Wie definiere ich Template-Member-Funktionen außerhalb der Klassendefinition, während ich auf beide Template-Parameter zugreife?

Barbara Streisand
Barbara StreisandOriginal
2024-11-03 13:04:30864Durchsuche

How to Define Template Member Functions Outside Class Definition While Accessing Both Template Parameters?

Template-Member-Funktionen außerhalb der Klassendefinition definieren

Das Definieren von Template-Member-Funktionen außerhalb der Definition einer Klasse bei gleichzeitigem Zugriff auf beide Template-Parameter kann mit erreicht werden eine spezielle Syntax.

Bedenken Sie den folgenden Codeausschnitt:

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

Um die Bar-Member-Funktion außerhalb der Klassendefinition zu implementieren, verwenden Sie diese Syntax:

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

In diese Syntax:

  1. Die erste Template-Anweisung deklariert den äußeren Template-Parameter T.
  2. Die zweite Template-Anweisung deklariert den inneren Template-Parameter U.
  3. Foo Gibt den Umfang der Member-Funktionsleiste für die Vorlagenklasse Foo mit dem Vorlagenparameter T an.
  4. Die verschachtelten spitzen Klammern <> Geben Sie an, dass bar eine Template-Member-Funktion mit dem Parameter U ist.

Mit dieser Syntax können Sie die Member-Funktion bar außerhalb der Klassendefinition definieren und gleichzeitig den Zugriff auf beide Template-Parameter T (der äußeren Klasse) und beibehalten U (der Mitgliedsfunktion).

Das obige ist der detaillierte Inhalt vonWie definiere ich Template-Member-Funktionen außerhalb der Klassendefinition, während ich auf beide Template-Parameter zugreife?. 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