如果写成这样 ostream operator << (ostream& os, Point& pt) 则: Point a, b; cout<<a<<b; 错误,只能写为: cout<<a; cout<<b; 原因在于 cout<<a<<b; 相当于: (cout<<a)<<b; 第一个()中返回cout的临时变量,它可以不可以作为左值。因而错误。 如果写成: ostream& operator << (ostream& os, Point& pt) 则: cout<<a<<b; 正确,因为它等同于 (cout<<a)<<b; (acout<<a)返回cout的引用,即就是它自己,它可以再次作为左值。因而能够连着写这个输出流
ostream & operator 重载操作流的注意事项
最新推荐文章于 2024-04-06 10:40:54 发布
本文详细解析了C++中ostream操作符<<的重载机制,解释了为何需要返回ostream引用而非ostream本身,以及如何正确实现连续输出。通过对比不同重载方式的效果,帮助读者理解左值和右值的概念及其在实际编程中的应用。
1万+

被折叠的 条评论
为什么被折叠?



