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 是 type 的公共数据成员char*

谁能告诉我我做错了什么?

4

2 回答 2

7

声明看起来正确。但是错误消息表明它ostream不是一种类型。尝试包括iostream标题并std::ostream改为说。

您应该考虑的另一件事是使参数 'hand' 成为 const 引用。所以你也可以接受临时文件并将它们打印出来。

于 2009-05-30T00:12:02.757 回答
2

这是在标题内吗?那么你可能需要说std::ostream。确保你#include<iosfwd>.

此外,您可能会说const hand&.

于 2009-05-30T00:12:52.257 回答