操作符函数课件.ppt

操作符函数课件.ppt

ID:57016388

大小:123.50 KB

页数:31页

时间:2020-07-26

操作符函数课件.ppt_第1页
操作符函数课件.ppt_第2页
操作符函数课件.ppt_第3页
操作符函数课件.ppt_第4页
操作符函数课件.ppt_第5页
资源描述:

《操作符函数课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++简明教程9/7/20211第十三章操作符函数操作符函数友元函数this指针21、什么是操作符函数1.1问题的提出类array的对象s1和s2的数组元素求和voidmain(){arraya1,a2,a3;a1.input();//输入123a2.input();//输入456a3=a1.add(a2);a3.print();//打印579}31、什么是操作符函数1.1问题的提出classarray{public:voidinput();voidprint();arrayadd(array&src);//对数组a的元素求和private:inta[3];};41、什么是操作符函数

2、1.1问题的提出arrayarray::add(array&src){arraydest;for(intk=0;k<3;k++){dest.a[k]=a[k]+src.a[k];returndest;}}51、什么是操作符函数1.1问题的提出voidarray::print(){for(intk=0;k<3;k++){cout<>a[k];}}71、什么是操作符函数1.2什么是操作符函数(操作符重载函数)作用C++的操作符赋予新的含义

3、语法返回值类型operator运算符名称(参数列表){…}81、什么是操作符函数1.3操作符函数的使用classarray{public:voidinput();voidprint();arrayadd(array&src);arrayoperator+(array&src);private:inta[3];};91、什么是操作符函数1.3操作符函数的使用arrayarray::operator+(array&src){arraydest;for(intk=0;k<3;k++){dest.a[k]=a[k]+src.a[k];}returndest;}101、什么是操作符函数1.3操

4、作符函数的使用voidmain(){arraya1,a2,a3;a1.input();//输入123a2.input();//输入456a3=a1+a2;//调用函数operator+a3.print();//打印579}111、什么是操作符函数1.4为什么要使用操作符函数arrayadd(array&src);//方法1:普通成员函数arrayoperator+(array&src);//方法2:操作符函数操作符函数在使用上更直观:a3=a1.add(a2);//普通成员函数的调用a3=a1+a2;//操作符函数的调用122、操作符函数的使用2.1操作符函数是如何运行的arraya

5、rray::operator+(array&src)//a2传递给src{arraydest;for(intk=0;k<3;k++){dest.a[k]=a[k]+src.a[k];//a[k]是那个对象的?}returndest;//dest拷贝给a3}132、操作符函数的使用2.1操作符函数是如何运行的operator+的参数包括隐藏参数this:arrayarray::operator+(array*this,array&src){arraydest;for(intk=0;k<3;k++){dest.a[k]=this->a[k]+src.a[k];}returndest;}说

6、明:this是C++的一个关键字,是当前对象的一个指针142、操作符函数的使用2.1操作符函数是如何运行的a3=a1+a2;等价于:a3=a1.operator+(a2);编译器将如上语句转换为:a3=operator+(&a1,a2);//a1即为当前对象152、操作符函数的使用2.2this指针的使用classpoint{public:set(intx,inty)//相当于set(point*this,intx,inty){this->x=x;//参数与成员变量名称相同,使用this加以区分this->y=y;}private:intx,y;};162、操作符函数的使用2.2th

7、is指针的使用voidmain(){pointp;pointp.set(2,3);//相当于调用set(&p,2,3);}172、操作符函数的使用2.3操作符函数的使用规则只能对现有的C++运算符进行重载如不能定义**运算符重载不能改变运算符的优先级重载不能改变运算符的结合性如赋值运算符“=”自右向左结合,重载后仍然如此183、操作符函数作为友元函数3.1问题的提出为类array定义一个操作符函数operator*,可以将数组a的元素乘以指定的数:void

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。