概述
虽然C++学了大半个月了,自己学了解了很多关于C++的知识,大的概念懂了不少,但是还是想说想要彻底的弄懂C++,绝非易事。当别人问到一个很小的知识点些许你都要愣很久,事实告诉我们不能太好高骛远。
为什么要写ostream而不是istream,因为当我们自定义类型(student类)的时候,如果需要输出(student类)就会需要用到操作符重载(<<)。
为什么函数参数ostream和函数参数ostream需要加引用呢?引用是谁呢?不写会怎样呢?
如果写成这样 ostream operator << (ostream& out, const student& s) 则: out<<s.num<<" "<<s.ch; 错误,只能写为: out<<s.num; out<<s.ch; 原因在于 out<<s.num<<s.ch; 相当于: (out<<s.num)<<s.ch; ()中返回cout的临时变量,它不可以作为左值。因而错误。 如果写成:ostream operator << (ostream& out, const student& s)则:cout<<s.num<<s.ch;正确,因为它等同于(out<<s.num)<<s.ch;(out<<s.num)返回out的引用,即就是它自己,它可以再次作为左值。因而能够连着写这个输出流
函数里面加return out这是经常写的这种形式
但是out引用的对象就是cout,输出到out里那么cout也改变了,return out也可以不要,结果正确。
最后
以上就是傻傻小笼包为你收集整理的深度剖析ostream&的全部内容,希望文章能够帮你解决深度剖析ostream&所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复