c – 运算符重载<<错误
作者:互联网
我试图重载运算符<<
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对象,因此您会收到错误.
它不应该是常量.
标签:c,overloading,operator-keyword 来源: https://codeday.me/bug/20190902/1789183.html