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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top