首页 理论教育C++程序设计基础教程-重载输入输出运算符

C++程序设计基础教程-重载输入输出运算符

【摘要】:当重载输出运算符“<<”用于输出时,相当于创建一个插入符函数。“函数体”中给出实现该插入符重载目的的代码。该语句等价于:cout<>”在C++中,“>>”运算符称为提取运算符,对它进行重载的函数称为提取符函数。

C++的输入/输出流库(将在第8章介绍)的一个重要特性就是能够支持新的数据类型的输出和输入。用户可以通过对插入符(<<)和提取符(>>)进行重载来支持新的数据类型。

1.重载输出运算符“<<”

在C++中,输出操作称为插入,“<<”称为插入运算符。当重载输出运算符“<<”用于输出时,相当于创建一个插入符函数。插入符函数的格式如下:

该插入符函数是以友元方式声明的。其中的第一个参数是ostream类对象的一个引用,即stream必须是一个输出流。“类引用名”接收待输出的对象。该函数返回ostream的一个引用stream。“函数体”中给出实现该插入符重载目的的代码。

【例4.15】分析以下程序的执行结果。

解:上述程序中,在执行main()函数中的cout<<A<<B语句时,就调用MyClass类中定义的插入符函数。该语句等价于:

cout<<A;

cout<<B;

程序的执行结果如下:

x=1,y=2

x=3,y=4(www.chuimin.cn)

2.重载输入运算符“>>”

在C++中,“>>”运算符称为提取运算符,对它进行重载的函数称为提取符函数。这个运算符函数接收流的输入信息,其格式如下:

该提取符函数是以友元方式声明的,其中第一个参数是istream类对象的一个引用,即stream必须是一个输入流,第二个参数接收输入对象的引用。该函数返回istream的一个引用stream。“函数体”中给出实现该提取符重载目的的代码。

【例4.16】分析以下程序的执行结果。

解:上述程序中,在执行main()函数中的cout>>A;语句时,就调用MyClass4类中定义的提取符函数。程序的一次执行结果如下:

输入x和y的值

x:5↙

y:8↙

输出x和y的值

x=5,y=8