¿Es esta la forma correcta de sobrecargar el operador de izquierda-stream? (C ++)
-
06-09-2019 - |
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?
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