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

标签 c++ overloading operator-keyword

我试图重载运算符<<

const ostream & operator<<(const ostream& out, const animal& rhs){
    out << rhs.a;
    return out;
}

似乎我得到一个错误,因为我返回一个常量,也因为第一个参数是对 ostream 对象的常量引用。

cout << objectOfAnimal1 << objectOfAnimal2 ;

如果我将返回类型和运算符签名更改为这个,它工作得很好:

ostream & operator<<(ostream& out, const animal& rhs)

最佳答案

你需要:

ostream & operator<<(ostream& out, const animal& rhs)

在您的代码中,您正试图修改一个const ostream 对象,因此出现错误。
它不应该是 const

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

相关文章:

c++ - 如何正确初始化一个事件

c# - 有没有办法为重载运算符调用基方法? C#

Java 7 使用可变参数重载

matlab - 如何在 Matlab 函数中设置变量的范围

c++ - 运算符关键字c++

java - 如何修复最后一个表达式 : trial = trial/numtrials * 4? 中未定义的运算符

c++ - 在没有特定 IDE 的 Windows 7 中使用 Rcpp 和 RInside

c++ - 2 个本地服务器(C++ 上的逻辑服务器和网页的 Web 服务器)数据交换。如何?

c++ - 将 ptr 传递给返回的 std::string

bash - Bash 中预期的一元运算符