温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用C++流插入和流提取运算符的重载

发布时间:2021-10-29 10:13:40 来源:亿速云 阅读:196 作者:iii 栏目:编程语言

这篇文章主要介绍“怎么使用C++流插入和流提取运算符的重载”,在日常操作中,相信很多人在怎么使用C++流插入和流提取运算符的重载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用C++流插入和流提取运算符的重载”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

<< 运算符的重载

C++ 在输出内容时,最常用的方式:

std::cout << 1 <<"hello";

提出问题:

  •  那这条语句为什么能成立呢?

  •  cout 是什么?为什么 << 运算符能用在 cout 上呢?

原因:

  •  实际上,cout 是在 iostream 头文件中定义的 ostream 类的对象。

  •  << 能够用在 cout 上是因为,在 ostream 类对 << 进行了重载。

对于如下这条语句:

std::cout << 1 <<"hello";

有可能按以下的方式重载成 ostream 类的成员函数:

ostream & ostream::operator<<(int n)  {      .... // 输出n整型的代码      return *this;  }  ostream & ostream::operator<<(const char * s)  {      .... // 输出s字符串的代码      return *this;  }

那么在使用流插入<<运算符时,等价于的形式如下:

01 数据类型是int类型时:

std::cout << 1;

上面的语句,等价于:

cout.operator<<(1);

02 数据类型是字符串类型时:

std::cout << "hello";

上面的语句,等价于:

cout.operator<<("hello");

03 数据类型组合使用时:

std::cout << 1 <<"hello";

上面的语句,等价于:

( cout.operator<<(1) ).operator<<("hello");

假定我们要想把某个对象里的内容进行打印输出,那么我们可以重载 ostream 类的流插入 << 运算符。

下面以 CStudent 类作为例子:

怎么使用C++流插入和流提取运算符的重载

输出结果:

1,20,小林coding

需要注意:

ostream & operator<<(ostream & o, const CStudent & s)

函数是全局的,所以函数的第一个参数必须要传入 ostream 的对象,并且 CStudent 类需要将此函数声明成友元函数,使得函数可以访问 CStudent 类的私有成员变量。

>> 运算符的重载

还是以 CStudent 类作为例子,假设想通过键盘的输入的内容,来初始化对象,则我们可以重载 istream 类的流提取 >> 运算符。

怎么使用C++流插入和流提取运算符的重载

输入内容和输出内容:

// 输入内容:  1,20,小林coding  // 输出内容:  1,20,小林coding

到此,关于“怎么使用C++流插入和流提取运算符的重载”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI