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:
templateclass 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!