Pregunta

Esta declaración de la función me da errores:

ostream& operator<<(ostream& os, hand& obj);

Los errores son:

error C2143: syntax error : missing ';' before '&'
error C4430: missing type specifier
error C2065: 'os' : undeclared identifier
error C2065: 'obj' : undeclared identifier
error C2275: 'hand' : illegal use of this type as an expression
    see declaration of 'hand'
error C4430: missing type specifier

mano es una clase que hice, la pantalla es un miembro de datos pública de tipo char*.

¿Alguien puede decirme lo que estoy haciendo mal?

¿Fue útil?

Solución

La declaración se ve bien. Pero el mensaje de error indica que ostream no es conocido como un tipo. Trate de incluir la cabecera iostream y decir std::ostream lugar.

Otra cosa que debes considerar es hacer el parámetro 'mano' de una referencia constante. Por lo que también podría aceptar temporales e imprimirlos.

Otros consejos

es esto dentro de una cabecera? entonces es probable que tenga que decir std::ostream. Asegúrese de que #include<iosfwd>.

Además, es probable que pueda decir const hand&.

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