C/C++教程

《C++ Primer 第5版》-14.2输入和输出运算符-康奈尔笔记

本文主要是介绍《C++ Primer 第5版》-14.2输入和输出运算符-康奈尔笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

14.2.1重载输出运算符

  1. 输入和输出运算符
  2. 重载输出运算符<<
  3. 输出运算符尽量减少格式化操作
  4. 输入输出运算符必须是非成员函数

Ostream& operator<<(ostream&os, const Sales_data &item);

Sales_data data;

Data<<cout;// 若是成员

1. 输入和输出运算符

1)Io 库定义了用其读写内置类型的版本,而类需要自定义其对象的新版本

2. 重载输出运算符<<

1)第一个形参是非常量ostream对象的引用(因为会改变其状态,无法直接复制一个ostream)

2)第二个形参是一个常量的引用,打印的类型,引用是避免复制实参,打印不会改变对象内容

3. 输出运算符尽量减少格式化操作

1)让用户控制endl这些

4. 输入输出运算符必须是非成员函数

Data<<cout;//是不符合重载运算符的规则的,虽然可以,但是不好,所以需要为非成员函数,让第一个参数是cout,第二个参数是对象。

1)因为左侧运算对象是我们类的第一个对象

2)假设输入输出是某个类的成员,则他们也必须是istream或ostream的成员。

所以,我们希望为类自定义IO运算符,需要定义为非成员函数。

14.2.2重载输入运算符

  1. 重载输入运算符>>
  2. Sales_data的输入运算符
  3. 输入时的错误
  4. 标示错误

Istream&operator>>(istream&is,Sales_data &item);

1. 重载输入运算符>>

1)通常第一个形参是运算符要读取的流的引用

2)第二个形参是要读入到的非常量对象的引用,不是const

2. Sales_data的输入运算符

1)Note: 输入运算符可能有错,而输出运算符没有

3. 输入时的错误

1)类型不匹配

2)当达到文件末尾或遇到其它错误

3)可以等读取完一次性检查

Note:读取发生错误时,输入运算符应该负责从错误中恢复

4. 标示错误

1)Failbit,eofbit,badbit

这篇关于《C++ Primer 第5版》-14.2输入和输出运算符-康奈尔笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!