Opérateur << surcharge pour appeler un problème de fonction d'impression
-
29-10-2019 - |
Question
D'accord, je suis un peu coincé à essayer de surcharger l'opérateur << pour ma classe de modèle. L'exigence est que l'opérateur << doit appeler une fonction d'impression void définie pour cette classe.
Voici les choses importantes de l'en-tête du modèle:
template <class T>
class MyTemp {
public:
MyTemp(); //constructor
friend std::ostream& operator<< (std::ostream& os, const MyTemp<T>& a);
void print(std::ostream& os, char ofc = ' ') const;
Et voici ma fonction d'impression, c'est un vecteur et imprime le dernier élément pour d'abord:
template <class T>
void Stack<T>::print(std::ostream& os, char ofc = ' ') const
{
for ( int i = (fixstack.size()-1); i >= 0 ; --i)
{
os << fixstack[i] << ofc;
}
}
Et voici comment j'ai l'opérateur << surchargé:
template <class T>
std::ostream& operator<< (std::ostream& os, const Stack<T>& a)
{
// So here I need to call the a.print() function
}
Mais je reçois une erreur "symbole externe non résolue". Donc, vraiment je suppose que j'ai deux problèmes. Le premier est le moyen de corriger l'erreur ci-dessus. Deuxièmement, une fois que cela sera corrigé, j'appellerais simplement A.print (OS) à l'intérieur << surcharge? Je sais cependant qu'il doit retourner un rythme d'osstre. Toute aide serait grandement appréciée!
Pas de solution correcte