Pergunta

Esta declaração função me dá erros:

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

Os erros são:

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

mão é uma classe que eu fiz, exibição é um membro de dados pública do tipo char*.

Alguém pode me dizer o que estou fazendo de errado?

Foi útil?

Solução

A declaração parece certo. Mas a mensagem de erro sugere que ostream não é conhecido como um tipo. Tente incluindo o cabeçalho iostream e std::ostream digamos vez.

Outra coisa que você deve considerar é fazer o parâmetro 'mão' uma referência const. Então, você também poderia aceitar temporários e imprimi-los.

Outras dicas

é isso dentro de um cabeçalho? então você provavelmente precisa dizer std::ostream. Certifique-se de #include<iosfwd>.

Além disso, você provavelmente pode dizer const hand&.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top