我正在尝试重载operator<<
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)发布于 2012-05-03 23:46:00
您需要具备:
ostream & operator<<(ostream& out, const animal& rhs)在您的代码中,您试图修改一个const ostream对象,因此得到了错误。
它不应该是const。
发布于 2012-05-03 23:45:36
ostream & operator<<(ostream& out, const animal& rhs){
out << rhs.a;
return out;
}你已经解释了问题的可能原因,但你真的没有尝试过吗?
https://stackoverflow.com/questions/10434790
复制相似问题