Heim  >  Artikel  >  Backend-Entwicklung  >  Wie überlade ich den \'<<\'-Operator als Freund für die Vorlagenklasse \'Pair\'?

Wie überlade ich den \'<<\'-Operator als Freund für die Vorlagenklasse \'Pair\'?

DDD
DDDOriginal
2024-10-31 23:18:281026Durchsuche

How to Overload the '<<' Operator as a Friend for Template Class 'Pair'?

Überladender Operator '<<' als Freund für die Vorlagenklasse „Paar“

Beim Versuch, die Klasse „<<“ zu überladen Wenn Sie den Operator als Freund der Vorlagenklasse „Pair“ verwenden, wird Benutzern möglicherweise eine Compiler-Warnung angezeigt. Diese Meldung macht den Programmierer auf ein Problem mit der Deklaration einer Nicht-Vorlagenfunktion aufmerksam.

Um den Operator richtig zu überladen, sollte die Friend-Deklaration wie folgt geändert werden:

friend ostream& operator<< <> (ostream&, Pair&);

Indem die Vorlagenargumente leer bleiben innerhalb von „<>“ kann der Compiler die Parameterliste ableiten, um die spezifische Spezialisierung der Vorlage zu identifizieren.

Um die Warnung vollständig zu beseitigen, muss die Deklaration von „operator<<“ verwendet werden. sollte vor der Vorlagendefinition von „Pair“ stehen und der folgenden Struktur ähneln:

template  class Pair;

template 
ostream& operator<<(ostream& out, Pair& v);

// Template definition of 'Pair'

Durch die Einhaltung dieser überarbeiteten Syntax kann der Compiler die Friend-Deklaration als Spezialisierung der Vorlage erkennen und das „<“ überladen. <' Betreiber entsprechend.

Das obige ist der detaillierte Inhalt vonWie überlade ich den \'<<\'-Operator als Freund für die Vorlagenklasse \'Pair\'?. 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