欢迎来到天天文库
浏览记录
ID:50082097
大小:698.50 KB
页数:12页
时间:2020-03-08
《C++程序设计 教学课件 作者 白伟青 等 第8章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章运算符重载8-1为什么需要运算符重载8-2运算符重载8-3重载增量运算符8-4重载赋值运算符18-1为什么需要运算符重载为什么同一个运算符“+”可以完成不同类型的数据的加运算?原因是C++语言针对基本数据类型已经对某些运算符做了适当的重载。当“+”运算符用于两个整型变量时,它执行整数加法;当“+”运算符用于两个浮点型变量时,它执行浮点数加法运算。28-2运算符重载1.重载为类的成员函数运算符重载为类的成员函数的语法形式如下:函数类型operator运算符(形参表){函数体}38-2运算符重载2.重载为类的友元函数运
2、算符重载为类的友元函数的语法形式如下:friend函数类型operator运算符(形参表){函数体}48-2运算符重载定义运算符函数时应注意以下问题:(1)对于一元运算符函数,用友元函数重载运算符时,需要声明一个形式参数。若用成员函数重载运算符时,则不能再声明形式参数,操作数由成员函数的this指针提供。58-2运算符重载(2)对于二元运算符函数,用友元函数重载运算符时,需要声明两个形式参数。若用成员函数重载运算符时,则需要声明一个形式参数,这个形式参数表示运算符的右操作数,左操作数由成员函数的this指针提供。6运算符
3、重载的规则如下。(1)C++中的运算符除了少数几个以外,全部可以重载,而且只能重载已有的这些运算符。不能重载的运算符有:sizeof、*、::、?:、.;C++可以重载的运算符如表8-2所示。7(2)重载运算符时,不能改变运算符原有的优先级别,也不能改变运算符需要的操作数的数目。(3)运算符重载是针对新类型数据的实际需要,对原有运算符进行适当的改造。一般来说,不改变运算符原有含义,只让它能够对新的数据类型进行计算。例如,重载“+”运算符后,它的功能还是进行加法运算。(4)不能人为定义新的运算符,只能使用系统提供的原有运算
4、符。88-3重载增量运算符类的一元运算符可重载为一个没有参数的成员函数或者带有一个参数的友元函数,参数必须是用户自定义类型的对象或者是对该对象的引用。98-4重载赋值运算符两个指针指向同一内存地址108-4重载赋值运算符说明:(1)=运算符重载必须用成员函数,不能用友元形式。(2)=运算符函数是唯一的一个不能被派生类继承的运算符函数。(3)连续赋值时函数必须按引用返回,否则,将会出现错误。(4)重载赋值运算符时,必须确保将一个对象中所有的数据成员全部复制到另一个对象中。11习题1.运算符如何进行重载?两种形式有何不同?2
5、.将例8.3的运算符重载改为友元函数的形式实现12
此文档下载收益归作者所有