Question

Cette déclaration de fonction me donne des erreurs:

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

Les erreurs sont:

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

la main est une classe que je fait, l'affichage est membre de données publiques de type char*.

Quelqu'un peut-il me dire ce que je fais mal?

Était-ce utile?

La solution

La déclaration ressemble à droite. Mais le message d'erreur indique que ostream n'est pas connu comme un type. Essayez d'inclure l'en-tête de iostream et dire std::ostream à la place.

Une autre chose que vous devriez considérer est fait le paramètre « main » une référence const. Donc, vous pouvez aussi accepter et de les imprimer temporaires sur.

Autres conseils

est-ce à l'intérieur d'un en-tête? alors vous avez probablement besoin de dire std::ostream. Assurez-vous #include<iosfwd>.

En outre, vous pouvez dire probablement const hand&.

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