C++程序设计大学教程 教学课件 ppt 王春玲 第9章 运算符重载

上传人:E**** 文档编号:89370904 上传时间:2019-05-24 格式:PPT 页数:13 大小:943KB
返回 下载 相关 举报
C++程序设计大学教程 教学课件 ppt 王春玲 第9章 运算符重载_第1页
第1页 / 共13页
C++程序设计大学教程 教学课件 ppt 王春玲 第9章 运算符重载_第2页
第2页 / 共13页
C++程序设计大学教程 教学课件 ppt 王春玲 第9章 运算符重载_第3页
第3页 / 共13页
C++程序设计大学教程 教学课件 ppt 王春玲 第9章 运算符重载_第4页
第4页 / 共13页
C++程序设计大学教程 教学课件 ppt 王春玲 第9章 运算符重载_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《C++程序设计大学教程 教学课件 ppt 王春玲 第9章 运算符重载》由会员分享,可在线阅读,更多相关《C++程序设计大学教程 教学课件 ppt 王春玲 第9章 运算符重载(13页珍藏版)》请在金锄头文库上搜索。

1、运算符重载,第9章,2,9.1 运算符重载的概念,在C+中,所有系统预定义的运算符都是通过运算符函数来实现的。,a+b,operator+(a,b),operator+(int,int),3,在用户自定义的新类中可以重载这些函数。 在类中对运算符函数进行重载的方法: 重载为类的成员函数 重载为类的友元函数,4,9.2 重载为类的成员函数,在类中定义一个同名的运算符函数来重载该函数。 TYPE X:operator(形参表) /函数体 /重新定义运算符在指定类X中的功能 ,5,由于将运算符函数重载为类的成员函数,所以,操作的一方当然是当前对象: 如果重载单目运算符,就不必另设置参数; 如果是重载

2、双目运算符,就只要设置一个参数作为右侧运算量,而左侧运算量就是该对象本身。 【例9-1】定义一个表示复数的类Complex,并在该类中对运算符“+”进行重载,以实现两个复数的加运算,要求将运算符重载为类的成员函数。,6,9.3 重载为类的友元函数,定义一个与某一运算符函数同名的全局函数; 然后再将该全局函数声明为类的友元函数,从而实现运算符的重载。 friend TYPE operator(形参表); 说明: (1)TYPE是该运算符函数的返回值类型。,7,(2)operator是关键字,是需要被重载的运算符,关键字operator与后面的运算符共同组成了该运算符函数的函数名。 (3)对于单目

3、运算符,参数表中只包含一个参数;而对于双目运算符,参数表中包含两个参数。 【例9-2】定义一个表示复数的类Complex,并在该类中对运算符“-”进行重载,以实现两个复数的减运算,要求将运算符重载为类的友元函数。,8,9.4 运算符重载的限制,(1)在C+中,几乎所有系统预定义的运算符(除“.”、“*”、“:”、“?:”、sizeof外)都可以被重载。 (2)运算符的重载既不会改变原运算符的优先级和结合性,也不会改变使用运算符的语法和参数个数。 (3)运算符函数operator ()通常被声明为类的成员函数或友元函数。其等价的函数调用形式如下表所示。,9,(4)当重载为类的成员函数时,运算符重

4、载函数的形参个数要比运算符操作数个数少一个;若重载为友元函数,则参数个数与操作数个数相同。 (5)“=”、“()”、“”和“-”等运算符不能用友元函数方式重载。,10,9.5 典型运算符的重载,9.5.1 赋值运算符的重载 默认的重载赋值运算符的功能是逐个拷贝一个对象的所有数据成员到另外一个对象。 这种赋值方式当对象中包含动态分配内存空间的情况有可能出错,因为类的数据成员中包含指针,简单的赋值操作会使得两个对象中的指针成员指向同一个空间,运行时会发生错误,这时则需要用户自己定义重载的赋值运算符。 【例9-3】创建一个字符串类String,并重载赋值运算符“=”,实现字符串之间的赋值运算。,11

5、,9.5.2 单目运算符的重载,单目运算符可以作为类的成员函数重载,也可以作为类的友元函数重载;作为成员函数重载是没有参数,而作为友元函数重载时有一个参数。 【例9-4】创建一个字符串类String,并重载运算符“!”为其成员函数,用于判断对象中的字符串是否为空。,12,两种方式调用该函数 表达式,如!string1 通过对象调用其成员函数,如string2.operator !() 还可以将单目运算符重载为类的友元函数,这时需要重载函数有一个参数。 【例9-5】创建一个字符串类String,并重载运算符“!”为其友元函数,用于判断对象中的字符串是否为空。,13,9.5.3 I/O运算符的重载,C+的I/O流库的一个重要特性就是能够支持新的数据类型的输入和输出。 用户可以通过对提取运算符“”和插入运算符“”和插入运算符“”重载示例。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号