Pregunta

Está bien, estoy un poco atascado al tratar de sobrecargar el operador << para mi clase de plantilla. El requisito es que el operador << debe llamar a una función de impresión vacía definida para esta clase.

Aquí están las cosas importantes del encabezado de la plantilla:

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;

Y aquí está mi función de impresión básicamente es un vector e imprime el último elemento para primero:

    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;
    }
}

Y así es como tengo el operador << sobrecargado:

    template <class T>
std::ostream& operator<< (std::ostream& os, const Stack<T>& a)
{
    // So here I need to call the a.print() function
}

Pero estoy recibiendo un error de "símbolo externo no resuelto". Así que realmente supongo que tengo dos problemas. El primero, es la forma de corregir el error anterior. En segundo lugar, una vez que se arregle, ¿llamaría a A.print (OS) dentro de << Sobrecarga? Sin embargo, sé que necesita devolver un ostras. ¡Cualquier ayuda sería muy apreciada!

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top