第四讲 类和对象(三)ppt课件.ppt

第四讲 类和对象(三)ppt课件.ppt

ID:58670036

大小:2.81 MB

页数:62页

时间:2020-10-05

第四讲 类和对象(三)ppt课件.ppt_第1页
第四讲 类和对象(三)ppt课件.ppt_第2页
第四讲 类和对象(三)ppt课件.ppt_第3页
第四讲 类和对象(三)ppt课件.ppt_第4页
第四讲 类和对象(三)ppt课件.ppt_第5页
资源描述:

《第四讲 类和对象(三)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、8/29/20211面向对象程序设计类和对象对象指针和对象引用数组子对象和堆对象常类型第三讲类和对象(三)1.指向对象的指针和指向类成员的指针指向对象的指针例:已知有一个M类,M*p;//p为指向M类对象的指针指向类数据成员的指针定义格式:类型标识符类名::*指针名指针赋值方式:指针名=&类名::成员名引用方式:对象名•*指针名或指向对象的指针*指针名第四讲类和对象(三)对象指针和引用例:#include“iostream.h”classcl{public:intval;cl(inti){val=i;}};第四讲类和对象

2、(三)对象指针和引用voidmain(){clobj(10);intcl::*date;date=&cl::val;cout<

3、第四讲类和对象(三)对象指针和引用2.指向类函数成员的指针定义格式类型标识符(类名::*指针名)(参数表)指针赋值形式指针名=类名::函数成员名引用形式(对象名•*指针名)(实数表列)或(指向对象指针*指针名)(实参表列)第四讲类和对象(三)对象指针和引用例:#include“iostream.h”classcl{private:intval;public:cl(inti){val=i;}intvalue(inta){returnval+a;}}voidmain(){int(cl::*pfun)(int);pfun=cl

4、::value;clobj(10);cout<<(obj.*pfun)(5)<<“”;//输出15cl*pc=&obj;cout<<(pc*pfun)(10)<<“”;//输出20}①在使用成员函数指针访问类的成员函数时,应保证参数、返回值以及类都应与所指成员函数相匹配。②成员函数指针本身也可以是类的数据成员第四讲类和对象(三)对象指针和引用3.对象指针和对象引用作函数参数对象指针作函数参数对象指针作为函数参数要比使用对象作函数参数更普通一些。因为使用对象指针作函数参数有如下两点好处:实现传址调用提高运行效率和减

5、少时空开销第四讲类和对象(三)对象指针和引用#include“iostream.h”classM{private:inta,b;public:M(){a=b=0;}M(intx,inty){a=x;b=y;}voidprint(){cout<

6、2).a+3;(*m2).b=(*m2).b+4;}main(){Ma1(2,3),a2(10,20);fun1(a1)a1.print();fun2(&a2);a2.print();}2,313,24问题:函数调用fun1()和fun2()是否调用拷贝初始化构造函数?第四讲类和对象(三)对象指针和引用对象引用作函数参数前面的例子中把fun1函数重新定义voidfun1(M&m1){m1.a=m1.a+3;m1.b=m1.b+4;}第四讲类和对象(三)对象指针和引用此时,fun1函数的参数为对象M的引用,当我们调用fun1

7、函数是用a1作实参,即:fun1(a1);a1.print();则输出结果为5,7问题:若类M中存在拷贝初始化构造函数,则发生函数调用fun1(a1)时是否要调用拷贝初始化构造函数?第四讲类和对象(三)对象指针和引用4.this指针this指针是一个隐含于对象的每一个成员函数中的特殊指针,该指针指向正对某个成员函数操作的对象对于类X中的每一成员函数都隐式的定义一个this指针,其定义形式如下:X*constthis第四讲类和对象(三)对象指针和引用当一个对象调用成员函数时,编译程序先将该对象地址赋给this指针,然后再调用

8、成员函数。第四讲类和对象(三)对象指针和引用#include“iostream.h”classA{private:inta,b;public:A(){a=b=0;}A(intx,inty){a=x;b=y;}voidcopy(A&aa){if(this==&aa)return;*this=aa;}voi

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

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

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