C++ 能够使用流提取运算符 >> 和流插入运算符 << 来输入和输出内置的数据类型。您可以重载流提取运算符和流插入运算符来操作对象等用户自定义的数据类型。

在这里,有一点很重要,我们需要把运算符重载函数声明为类的友元函数,这样我们就能不用创建对象而直接调用函数。

下面的实例演示了如何重载提取运算符 >> 和插入运算符 <<。

实例
#include
using namespace std;

class Distance
{
private:
int feet; // 0 到无穷
int inches; // 0 到 12
public:
// 所需的构造函数
Distance(){
feet = 0;
inches = 0;
}
Distance(int f, int i){
feet = f;
inches = i;
}
friend ostream &operator<<( ostream &output,
const Distance &D )
{
output << "F : " << D.feet << " I : " << D.inches;
return output;
}

  friend istream &operator>>( istream  &input, Distance &D ){ input >> D.feet >> D.inches;return input;            }

};
int main()
{
Distance D1(11, 10), D2(5, 11), D3;

cout << "Enter the value of object : " << endl;
cin >> D3;
cout << "First Distance : " << D1 << endl;
cout << “Second Distance :” << D2 << endl;
cout << “Third Distance :” << D3 << endl;

return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:

$./a.out
Enter the value of object :
70
10
First Distance : F : 11 I : 10
Second Distance :F : 5 I : 11
Third Distance :F : 70 I : 10
C++ 重载运算符和重载函数 C++ 重载运算符和重载函数

C++输入输出流重载相关推荐

  1. c++运算符重载与输入输出流重载

    运算符重载 运算符重载--赋予运算符具有操作自定义类型数据功能 运算符重载本身也是一种函数,我们有两种写法--友元类运算符重载函数和类运算符重载 运算符重载的实质本身就是函数调用 我们要注意它的写法: ...

  2. C++ 输入输出流 文本文件 二进制文件读写

    文本文件/ASCII文件(能直接显示内容,费存储空间):文件中每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件或称字符文件. 二进制文件(不能显示内容,节 ...

  3. Java输入输出流IO

    1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

  4. 1.7 Java字符流的使用:字符输入/输出流、字符文件和字符缓冲区的输入/输出流

    尽管 Java 中字节流的功能十分强大,几乎可以直接或间接地处理任何类型的输入/输出操作,但利用它却不能直接操作 16 位的 Unicode 字符.这就要用到字符流.本节将重点介绍字符流的操作. 字符 ...

  5. 1.6 Java字节流的使用:字节输入/输出流、文件输入/输出流、字节数组输入/输出流

    InputStream 是 Java 所有字节输入流类的父类, OutputStream 是 Java 所有字节输出流类的父类, 它们都是一个抽象类,因此继承它们的子类要重新定义父类中的抽象方法. 下 ...

  6. C++学习笔记:(九)输入/输出流

    目录 9.输入/输出流 9.1C++流类库简介 9.2输入/输出流 9.3自定义类型的输入/输出 9.4文件输入/输出 9.输入/输出流 数据的输入.输出是最重要的操作,C++ 的输入.输出有 ios ...

  7. [转]Java输入输出流的使用详细介绍

    出处:http://www.jb51.net/article/36138.htm 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进 ...

  8. java用输入流创建数据文件_java开发知识IO知识之输入输出流以及文件

    java开发知识IO知识之输入输出流以及文件 一丶流概述 流十一组有序的数据序列.根据操作的类型,可以分为输入流跟输出流两种. IO(input/output)输入/输出流提供了一条通道程序.可以使用 ...

  9. java回忆录—输入输出流详细讲解(入门经典)

    今天我们开始进入学习 java 中比较让人头疼的事, 那就是 I/O 流.多线程.网络编程.这里对 I/O 流的一个详细讲解.希望对大家有点用吧.(不看后悔哦) 一.什么是IO Java中I/O操作主 ...

最新文章

  1. OC学习篇之---对象的拷贝
  2. Python实现进度条总结
  3. 最新综述:作为体现具体化自然语言环境的文本世界
  4. boost::property_tree模块自定义 ptree 的 data_type 需要执行的操作
  5. FutureTask源码
  6. 电脑操作系统维护10条实用建议!
  7. Cortex M3存储器映射
  8. MySQL 创建索引
  9. 有了优秀的可临摹PSD分层模板|瞬间提升海报质感!
  10. 金庸小说人物知识图谱构建——构建共现矩阵
  11. Vue 实现电子签名
  12. 不需要写代码,快速批量修改文件夹中图片的格式
  13. 进程间通信方式有哪些?各自有哪些优缺点?
  14. 如何知道计算机是否支持64位,使用鲁大师怎么查看电脑CPU是否支持64位系统?...
  15. 让IE9及以上兼容es6,Promise, 及es7的async await
  16. vue : 无法加载文件 C:\Users\lihongjie\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 htt ps:/go.micr
  17. 典当行抵押需要什么资料
  18. wps linux 程序转pdf文件,将PowerPoint转换成PDF的九款免费软件(附下载)
  19. html网页标签用法
  20. 研发流程及各阶段任务

热门文章

  1. 洛谷P2181 对角线(组合数)
  2. 利用CSS边框合并属性打造table细边框
  3. 判断字符串是数字、字符、还是...
  4. spring集成compass中出现的问题和总结
  5. mysql 连接查询分组_详解MySQL中的分组查询与连接查询语句
  6. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构|图的邻接表与深度、广度优先搜索
  7. 2021-11-10 动态粒子背景插件
  8. Python使用两个Event对象同步生产者消费者问题
  9. 几行Python代码打造自己的磁盘垃圾文件清理器
  10. oracle登录无法处理服务名,ORA-12154: TNS: 无法处理服务名 plsql能登陆