繁体   English   中英

运算符重载<<错误

[英]operator overloading<< error

我试图重载运算符<<

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

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

cout << objectOfAnimal1 << objectOfAnimal2 ;

如果我将返回类型和操作符签名更改为以下内容,它可以正常工作:

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

你需要:

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

在您的代码中您正在尝试修改const ostream对象,因此您会收到错误。
它不应该是const

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

你已经解释了问题的可能原因,你真的没有尝试过吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM