第二讲复杂的对象精选PPT.ppt

上传人:石*** 文档编号:88372834 上传时间:2023-04-25 格式:PPT 页数:24 大小:1.45MB
返回 下载 相关 举报
第二讲复杂的对象精选PPT.ppt_第1页
第1页 / 共24页
第二讲复杂的对象精选PPT.ppt_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《第二讲复杂的对象精选PPT.ppt》由会员分享,可在线阅读,更多相关《第二讲复杂的对象精选PPT.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第二讲复杂的对象第二讲复杂的对象1第1页,本讲稿共24页本讲主要内容本讲主要内容l类和对象类和对象l对象数组和对象指针对象数组和对象指针lthis指针指针第2页,本讲稿共24页1.类和对象类和对象l在面向对象程序设计中,对象的类型称为类(在面向对象程序设计中,对象的类型称为类(class)。)。l类代表了某一批对象的共性和特征。类代表了某一批对象的共性和特征。l类是对象的抽象。类是对象的抽象。l而对象是类的具体实例(而对象是类的具体实例(instance)。)。vclassprivate:protected:public:;v对象的定义对象的定义类类型类类型对象对象1,对象,对象2,第3页,本

2、讲稿共24页类设计类设计?例题例题1定义一个类,实现输入定义一个类,实现输入10个整数,并能够反序输出。个整数,并能够反序输出。classmyclaprivate:intarr10;public:voidinput()for(inti=0;iarri;voidpr()for(inti=9;i=0;i-)coutarrixy;voidcopy(cla*p)x=p-x;y=p-y;voidpr()coutxyendl;参参考考答答案案第10页,本讲稿共24页写出以下程序段的输出结果写出以下程序段的输出结果#include#includeclasspersonprivate:intno;charna

3、me20;public:voidsetvalue(intno,charname)this-no=no;strcpy(this-name,name);intgetno()returnno;char*getname()returnname;voidmain()person*p;p=newperson;p-setvalue(1,zhang);coutgetno():(*p).getname()print();成员函数成员函数print()是怎样分清给哪个对象执行的呢?是怎样分清给哪个对象执行的呢?第16页,本讲稿共24页thislC+为成员函数提供一个称为为成员函数提供一个称为this的指针,的指针

4、,this在所有成员函在所有成员函数调用里作为一个隐含参数传送给成员函数,所以,我们常数调用里作为一个隐含参数传送给成员函数,所以,我们常称成员函数拥有称成员函数拥有this指针。指针。l当一个对象调用类的成员函数时,当一个对象调用类的成员函数时,this指针就指向该对象,指针就指向该对象,this是一个隐含的指针,它不能被显式说明;是一个隐含的指针,它不能被显式说明;this是个局部变是个局部变量,局限于某一个对象。量,局限于某一个对象。lthis指针通常不显式使用,需要时可以用(指针通常不显式使用,需要时可以用(*this)来表示给成)来表示给成员对象。员对象。lthis指针主要在运算符重

5、载、自引用等场合。指针主要在运算符重载、自引用等场合。l当一个对象调用类的成员函数时,系统先将该对象的地址赋当一个对象调用类的成员函数时,系统先将该对象的地址赋给给this指针,然后调用成员函数。指针,然后调用成员函数。第17页,本讲稿共24页lthis指针只能在一个类的成员函数中调用,它表示当前对象的指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子:地址。下面是一个例子:voidDate:setMonth(intmn)month=mn;/这三句是等价的这三句是等价的this-month=mn;(*this).month=mn;第18页,本讲稿共24页l例如:类例如:类c

6、la中有一个成员函数中有一个成员函数intcla:fun()()returnx*y;lC+把它处理为把它处理为intcla:fun(cla*this)returnthis-x*this-y;l当对象当对象obj调用该成员函数时,实际上是用下面的方式调用的调用该成员函数时,实际上是用下面的方式调用的obj.fun(&obj);将对象将对象obj的地址传给形的地址传给形this指针,然后按指针,然后按this的指向去引用的指向去引用成员函数的。成员函数的。注意:注意:this指针通常不显式定义!下面的语句不能出现在指针通常不显式定义!下面的语句不能出现在程序中,这里是为了便于理解。程序中,这里是为

7、了便于理解。intcla:fun(cla*this)obj.fun(&obj);第19页,本讲稿共24页this指针练习指针练习(j205.cpp)l看程序,写结果。看程序,写结果。#includeclassaaprivate:inta,b;public:voidsetaa()a=0;b=0;voidsetaa1(intx,inty)a=x;b=y;intreturna()returna;intreturnb()returnb;voidmain()aaa1,a2;a1.setaa();a2.setaa1(3,4);a1.copy(a2);couta1.returna()-a2.returna(

8、)endl;couta1.returnb()+a2.returnb()endl;voidcopy(aa&z);voidaa:copy(aa&z)if(this=&z)return;*this=z;0 8第20页,本讲稿共24页j206.cpp?例题例题5利用利用this指针,判断两个对象是否指针同一内存空间。指针,判断两个对象是否指针同一内存空间。class clapublic:int fun1(cla&obj)if(this=&obj)return 1;elsereturn 0;第21页,本讲稿共24页练习练习l1.1.关于关于thisthis指针的说法正确的是(指针的说法正确的是()。(A

9、)(A)thisthis指针必须显示的说明指针必须显示的说明 (B)(B)定义一个类后,定义一个类后,thisthis指针就指向该类指针就指向该类 (C)(C)成员函数拥有成员函数拥有thisthis指针指针 (D)this(D)this指针属于对象的指针属于对象的u答案:答案:Cl2.this2.this指针能出现在(指针能出现在()地方。)地方。(A A)成员函数内部成员函数内部 (B B)成员函数形式参数成员函数形式参数 (C C)成员函数实际参数成员函数实际参数 (D D)普通函数参数普通函数参数u答案:答案:A第22页,本讲稿共24页对象的练习对象的练习l编程实现点的坐标,能够移动坐标点的位置,并将二维点坐编程实现点的坐标,能够移动坐标点的位置,并将二维点坐标的定义放在标的定义放在Tpoint.h中。(中。(Tpoint.h与与j207.cpp)第23页,本讲稿共24页本讲小结本讲小结l对象的数组和指针对象的数组和指针lthis 指针指针l 作业:作业:1.设计一个学生类,设计方法实现对象之间的拷贝。设计一个学生类,设计方法实现对象之间的拷贝。2.用对象数组的指针,实现对象的输出功能。用对象数组的指针,实现对象的输出功能。第24页,本讲稿共24页

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

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁