


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C/C+ this 指针详解this 是 C+ 中的一个关键字,也是一个 const 指针,它指向当前对象, 通过它可以访问当前对象的所有成员。 象,this 就指向 stu。下面是使用 this 的一个完整示例:#include using namespace std;class Studentpublic:void setname(char *name); void setage(int age);void setscore(float score); void show();private:char *name; int age; float score;void Student:set
2、name(char *name)this-name = name;void Student:setage(int age)this-age = age;void Student:setscore(float score)this-score = score;void Student:show()coutname的年龄是age,成绩是score setname(李华);pstu - setage(16); pstu - setscore(96.5); pstu - show();return 0;运行结果:李华的年龄是 16,成绩是 96.5this 只能用在类的内部,通过 this 可以访问类
3、的所有成员,包括 private、protected、public 属性的。本例中成员函数的参数和成员变量重名,只能通过 this 区分。以成员函数setname(char*name)namenamenamename;name赋值,而不是给成员变量name赋值。而写作thisnamename;后,=左边的name就是成员变量,右边的name就是形参,一目了然。注意,this 是一个指针,要用-来访问成员变量或成员函数。this 虽然用在类的内部,但是只有在对象被创建以后才会给 this 赋值,并且这个赋值的过程是编译器自动完成的,不需要用户干预,用户也不能显式地给this 赋值。本例中,thi
4、s 的值和 pstu 的值是相同的。我们不妨来证明一下,给 Student 类添加一个成员函数printThis(),专门用来输出 this 的值,如下所示:void Student:printThis() coutthis printThis(); coutpstu1 printThis(); coutpstu2endl;运行结果: 0 x7b17d8 0 x7b17d8 0 x7b17f0 0 x7b17f0可以发现,this 确实指向了当前对象,而且对于不同的对象,this 的值也不一样。几点注意:this 是 const 指针,它的值是不能被修改的,一切企图修改该指针的操作, 如赋值、递增、递减等都是不允许的。this 只能在成员函数内部使用,用在其他地方没有意义,也是非法的。thisstatic(后续会讲到 static 成员)。this 到底是什么this 实际上是成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给 this。不过 this 这个形参是隐式的,它并不出现在代码中,而是在编译阶段由编译器默默地将它添加到参数列表中。this 作为隐式形参,本质上是成员函数的局部变量,所以只能用在成员函数的内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆运输合同诉讼条款承包合同范本
- 车辆租赁与车辆租赁保险服务合同
- 餐饮店顾客签单消费挂账支付合同范本
- 2024年珠海城市职业技术学院辅导员考试真题
- 2024年六盘水师范学院辅导员考试真题
- 眼科护理学授课
- 博乐市招聘社区工作者笔试真题2024
- 肠内营养护理常规管理
- 儿科护理健康教育
- 新闻采访活动方式
- 2025届广东省佛山市南海中学英语八下期末考试模拟试题含答案
- 山东济南天桥区2024-2025 学年第二学期七年级地理期末考试试题含答案
- 2025安全生产月活动总结模板十(19P)
- 山西省2025年中考第三次模拟考试语文试卷(含答案)
- 肾上腺疾病讲课件
- 2025年甘肃省中考道德与法治试卷(含标准答案)
- 毕业设计(论文)-8m3连续搅拌釜式反应器设计
- (高清版)DB13∕T 2937-2019 非煤矿山双重预防机制建设规范
- 2025年餐饮管理与服务技能考试卷及答案
- 2025吉林长春市轨道交通集团有限公司校园招聘693人笔试参考题库附带答案详解析
- 合同账户变更补充协议书
评论
0/150
提交评论