如果写成这样 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 重载操作流的注意事项
最新推荐文章于 2020-09-05 20:49:43 发布