为了账号安全,请及时绑定邮箱和手机立即绑定

为什么“<<”重载一定要加上&

friend ostream& operator<<(ostream &output, Coordinate &coor);

如果不加引用符号的话(任意第一个或者第二个,第三个无所谓),编译器都会报错。

为什么ostream类型的对象一定要加引用符号呢?也就是说为什么第一个第二个&必须要加。




正在回答

2 回答

不使用引用也是可以的,但是形参输入函数会在堆栈新开一个区域给参数,对于一般类型的数据可能无所谓但是对于类来说就很庞大了。而且形参如果不是指针和引用是无法修改对象的参数的。

0 回复 有任何疑惑可以回复我~

(为了多次使用<<)因为如果不加引用的话,ostream类型的output只是一个形参,而你的数据比如:output<<a<<b;只是放在output缓冲区里面,而不是cout里面。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91156    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程

为什么“<<”重载一定要加上&

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信