这个函数声明给了我错误:
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*
的公共数据成员。
有谁能告诉我我做错了什么?
答案 0 :(得分:7)
声明看起来正确。但错误消息表明ostream
未被称为类型。请尝试添加iostream
标题,然后说出std::ostream
。
您应该考虑的另一件事是将参数'hand'作为const引用。所以你也可以接受临时表并打印出来。
答案 1 :(得分:2)
这是在标题内吗?那你可能需要说std::ostream
。请务必#include<iosfwd>
。
另外,您可以说const hand&
。