これは、左のストリーム演算子をオーバーロードするための正しい方法は何ですか? (C ++)

StackOverflow https://stackoverflow.com/questions/928613

質問

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

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

手は、ディスプレイが型char*のパブリックデータメンバーであり、私が作ったクラスである。

誰もが私が間違ってやっているものを私に伝えることができますか?

役に立ちましたか?

解決

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

あなたが考慮すべきもう一つは、const参照をパラメータ「手」を作っています。だから、また一時を受け入れ、それらをプリントアウトすることができます。

他のヒント

これは、ヘッダ内にありますか?あなたはおそらくstd::ostreamを言う必要があります。あなたは#include<iosfwd>ていることを確認します。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top