其他分享
首页 > 其他分享> > c – 运算符重载<<错误

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