首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >operator overloading<<错误

operator overloading<<错误
EN

Stack Overflow用户
提问于 2012-05-03 23:43:47
回答 2查看 109关注 0票数 3

我正在尝试重载operator<<

代码语言:javascript
复制
const ostream & operator<<(const ostream& out, const animal& rhs){
    out << rhs.a;
    return out;
}

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

代码语言:javascript
复制
cout << objectOfAnimal1 << objectOfAnimal2 ;

如果我将返回类型和运算符签名更改为下面的类型,它就可以正常工作:

代码语言:javascript
复制
ostream & operator<<(ostream& out, const animal& rhs)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-03 23:46:00

您需要具备:

代码语言:javascript
复制
ostream & operator<<(ostream& out, const animal& rhs)

在您的代码中,您试图修改一个const ostream对象,因此得到了错误。

它不应该是const

票数 4
EN

Stack Overflow用户

发布于 2012-05-03 23:45:36

代码语言:javascript
复制
ostream & operator<<(ostream& out, const animal& rhs){
out << rhs.a;
return out;
}

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10434790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档