Lorsque vous tentez de surcharger le '<<' en tant qu'ami de la classe de modèle « Pair », les utilisateurs peuvent rencontrer un avertissement du compilateur. Ce message alerte le programmeur d'un problème de déclaration de fonction non-modèle.
Pour surcharger correctement l'opérateur, la déclaration d'ami doit être modifiée comme suit :
friend ostream& operator<< <> (ostream&, Pair&); En laissant les arguments du modèle vides dans '<>', le compilateur peut déduire la liste de paramètres pour identifier la spécialisation spécifique du modèle.
Pour éliminer complètement l'avertissement, la déclaration de 'operator<<' doit précéder la définition du modèle de 'Pair', ressemblant à la structure suivante :
templateclass Pair; template ostream& operator<<(ostream& out, Pair & v); // Template definition of 'Pair' En adhérant à cette syntaxe révisée, le compilateur peut reconnaître la déclaration d'ami comme une spécialisation du modèle et surcharger l'attribut '< &Lt ;' opérateur en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!