我是靠谱客的博主 傻傻小笼包,最近开发中收集的这篇文章主要介绍深度剖析ostream&,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        虽然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&所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部