c++ - IO运算符重载错误

标签 c++ io operator-overloading

在.h文件中

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

在.cpp 文件中

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

我遇到的错误:

error C2143: syntax error : missing ';' before '&'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2061: syntax error : identifier 'ostream'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int error C2805: binary 'operator <<' has too few parameters

我已经检查了所有我能找到的 IO 重载教程,但我无法解决这个问题。

编辑:添加 std::修复了除“> error C2805: binary 'operator <<' has too few parameters”之外的所有错误 我不知道那是什么意思

EDIT2:作为 friend 声明函数解决了这个问题。 谢谢大家!

最佳答案

您正在使用 ostream没有用命名空间 std:: 限定它

使用

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

关于c++ - IO运算符重载错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18194489/

相关文章:

c++ - 如何避免每次通过 openmp for 循环重新初始化 vector ?

c++ - 预分配 vector 是否更有效?

c++ - Qt C++ Read do while loop not initializing

c++ - Friend Operator << 重载问题,

r - 是否可以在 R 中获得 F#'s function application "|>"运算符?

c++ - OpenCV:16 位灰度图像的归一化结果较弱

c - 来自用户输入的动态指针数组

Python - 如何在 Ubuntu 上的根文件夹中打开或创建文件?

php - 当我在 IO 操作上对 Node.js 进行基准测试时,为什么 PHP 比 Node.js 更胜一筹?

C++ 重载加号运算符以将元素添加到对象