IO操作员过载错误

IO operator overloading error

本文关键字:错误 操作员 IO      更新时间:2023-10-16

In.h文件

ostream& operator <<(ostream &os,const object &);

.cpp文件中的

ostream& operator <<(ostream &os,const object &mono)
{
    os << mono.coef<<" *X^"<<mono.degree;
    return os;      
}

我收到的错误:

错误C2143:语法错误:缺少";"在"&"之前
错误C4430:缺少类型说明符-假定为int。注意:C++不支持默认int
错误C2061:语法错误:标识符"ostream"
错误C4430:缺少类型说明符-假定为int。注意:C++不支持默认的int错误C2805:二进制运算符<lt;'参数太少

我已经检查了我能找到的每个IO过载教程,但我无法修复这个问题。

EDIT:添加std::修复了除">错误C2805之外的所有错误:二进制'operator<<'的参数太少"我不知道是什么意思

EDIT2:将函数声明为朋友解决了这个问题。谢谢大家!

您使用的是ostream,而没有使用命名空间std:: 限定它

使用

std::ostream& operator <<(std::ostream& os,const object& mono)

我想您错过了friend关键字。

我向您推荐官方文件:http://en.cppreference.com/w/cpp/language/operators

你还错过了using namespace std;std::ostream&

我希望这个答案能帮助你解决问题。