0

この関数宣言は私にエラーを与えます:

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

エラーは次のとおりです。

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

handは私が作成したクラスであり、displayはタイプのパブリックデータメンバーですchar*

誰かが私が間違っていることを教えてもらえますか?

4

2 に答える 2

7

宣言は正しく見えます。ostreamしかし、エラーメッセージは、それがタイプとして知られていないことを示唆しています。iostreamヘッダーを含めて、std::ostream代わりに言ってみてください。

考慮すべきもう1つのことは、パラメーター'hand'をconst参照にすることです。したがって、一時的なものを受け入れて印刷することもできます。

于 2009-05-30T00:12:02.757 に答える
2

これはヘッダーの中にありますか?その後、おそらく言う必要がありますstd::ostream。必ず#include<iosfwd>

また、あなたはおそらく言うことができますconst hand&

于 2009-05-30T00:12:52.257 に答える