已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程要求 课程内容 面向对象程序设计 课程内容 课程要求 参考书目 返回首页 面向对象程序设计 类和对象 友元 静态成员 对象成员 常成员 this指针 综合范例 面向对象程序设计 This指针 指向当前对象实例的特殊指针成员函数通过this指针 找到自己所属的对象实例隐含定义形式 2 16 main result constthis 面向对象程序设计 this指针 2 16 classeg inti public voidload intval i val intget returni voidmain egobj obj load 100 cout obj get this的隐式调用 voidload eg this intval this i val intget eg this returnthis i load get 面向对象程序设计 this指针 2 16 classstudent public voidcopy student this的显式调用 a copy a b copy a 面向对象程序设计 this指针 2 16 classCTest public CTest x 20 Avoiduse this Bprivate intx voidCTest use this CTesty pointer Cthis G 改正错误 voidmain CTesty Hthis x 235 I this this x 10 this x 235 面向对象程序设计 this指针 小结 2 16 back 面向对象程序设计 静态成员 静态数据成员 例3 28定义 2 16 static类型名变量名 面向对象程序设计 静态成员 静态数据成员初始化格式 2 16 类型类名 静态数据成员 值 能否使用构造函数为静态数据成员赋值 面向对象程序设计 静态成员 2 16 classCCounter public staticintcount 共有数据成员CCounter count intCCounter count 0 voidmain cout 当前类对象的数目为 cout CCounter count endl CCounterobj1 obj2 cout 当前类对象的数目为 cout CCounter count endl 统计对象的个数 staticintcount intCCounter count 0 CCounter count CCounter count 若改为私有数据成员会出现什么情况 面向对象程序设计 静态成员 2 16 classCStudent intNo char name staticinttotalstu public CStudent voidoutputinfo intCStudent totalstu 0 CStudent CStudent totalstu name newchar 10 No totalstu cin name voidCStudent outputinfo cout No t name endl 自动编号 staticinttotalstu intCStudent totalstu 0 totalstu No totalstu 面向对象程序设计 静态成员 静态成员函数定义形式 成员函数前使用static说明 2 16 1 是类的成员函数 调用时采用类名 函数名2 可以调用静态成员 但调用非静态成员时必须借助对象3 编译器对静态成员函数的处理是内部的 在多文件联编中 不会与其他同名函数冲突4 可以在建立任何对象之前处理静态数据成员 面向对象程序设计 静态成员 2 16 classM public M inta A a B a staticvoidf1 Mm private intA staticintB intM B 0 voidM f1 Mm cout A m A endl cout B B endl 静态成员函数 staticvoidf1 Mm voidmain Ma1 1 a2 2 M f1 a1 M f1 a2 voidmain Ma1 1 M f1 a1 Ma2 2 M f1 a2 修改后结果 面向对象程序设计 静态成员 2 16 练习 设计一个书类 能够保存书名 定价 并可以统计所有书的本数和总价 并给出测试程序 面向对象程序设计 静态成员 小结 2 16 back 面向对象程序设计 友元 友元函数定义形式 2 16 friend友元函数名 参数表 1 不是类的成员函数 但可以访问类所有的成员2 可以类的任何部分声明3 实现可以在类外 不需要加上 也可以在类内 面向对象程序设计 友元 2 16 classCBox inti j publicCBox inta 10 intb 10 i a j b friendintget area CBox 计算矩形面积 friendintget area CBox intget area CBox s 面向对象程序设计 友元 2 16 classCA inta public friendvoidA classCB intb public friendvoidA voidA CAa1 CBb1 a1 a 1 b1 b 2 友元函数访问多个类对象 面向对象程序设计 友元 2 16 计算火车旅途时间的友元函数 面向对象程序设计 友元 友元成员函数 把另一个类成员函数定义为自己的友元定义形式 2 16 friend类名1 成员函数名 参数表 classCA public voidA classCB public friendvoidCA A voidCA A 直接访问CA类和CB类的所有成员 面向对象程序设计 友元 2 16 classA2 classA1 inta public A1 inti a i intGeta returna voidChange A2 classA2 voidChange A2 friendvoidA1 Change A2 面向对象程序设计 友元 友元类 2 16 classCA public voidA voidB classCB public friendclassCA voidCA A 直接访问CA类和CB类的所有成员 voidCA B 直接访问CA类和CB类的所有成员 计算火车旅途时间的友元类 面向对象程序设计 友元 小结 2 16 back 面向对象程序设计 对象成员 讨论的问题 类中包含其他类的对象时 本类和其他类中构造和析构函数调用类中包含其他类的对象时 这些对象如何初始化 2 16 1 类中嵌套他类对象 构造函数调用次序为先说明先调用 析构函数调用次序为先说明后调用2 在构造函数中使用初始化成员列表为他类对象构造函数传递参数 面向对象程序设计 对象成员 2 16 classA intx y public A inta intb x a y b cout 调用类A的构造函数 endl A cout 调用类A的析构函数 n classB intLength Width public B inta intb Length a Width b cout 调用了类B的构造函数 endl B cout 调用类B的析构函数 n classC intr Aa1 DBb1 Epublic C inta intb intc a1 b c b1 500 600 r a cout 调用了类C的构造函数 endl C cout 调用类C的析构函数 n Cc1 100 200 300 back 面向对象程序设计 常成员 常引用const对象定义形式 2 16 类名const对象名const类名对象名 1 不能改变const对象的成员数据2 const对象只能访问对象中的const成员函数3 必须对const对象进行初始化 面向对象程序设计 常成员 2 16 const对象 classA inta public intb A inti intj a i b j voidset inti intj voidprint const constAa1 1 3 a1 print a1 b 3 a1 set 2 3 面向对象程序设计 常成员 const成员数据定义形式 2 16 const变量名 1 不能在类定义时直接赋值2 不能在任何函数中对其赋值3 构造函数只能够通过初始化列表对其初始化 面向对象程序设计 常成员 2 16 const数据成员 classCIncrement intcount constintincrement public CIncrement intc 0 inti 1 CIncrement intc 0 inti 1 increment i count c increment i 面向对象程序设计 常成员 const成员函数定义形式 2 16 参数表 const 1 不能改变类中成员数据的值 也不能调用非const成员函数2 const对象只能调用const成员函数3 普通对象优先考虑非co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南省演出公司公开招聘2人备考考试试题及答案解析
- 2025年甘肃省甘南州碌曲县选调工作人员和项目人员26人择优入编考试备考笔试试题及答案解析
- 深度解析(2026)《GBT 26007-2017弹性元件和接插件用铜合金带箔材》
- 深度解析(2026)《GBT 25947-2010铝土矿 散装料水分含量的测定》(2026年)深度解析
- 2025特能集团审计中心工作人员招聘模拟笔试试题及答案解析
- 深度解析(2026)《GBT 25818-2010酸性艳蓝P-RL(C.I.酸性蓝350)》
- 深度解析(2026)《GBT 25662-2010数控弧齿锥齿轮铣齿机 精度检验》(2026年)深度解析
- 2025下半年广东肇庆市怀集县事业单位招聘14人考试备考题库及答案解析
- 2025广西百色市西林县消防救援大队政府专职消防员招聘15人备考考试试题及答案解析
- 2025吉林白城市镇赉县事业单位招聘(含专项招聘高校毕业生)及基层治理专干47人备考考试题库及答案解析
- 2025年天津大学管理岗位集中招聘15人备考题库及完整答案详解1套
- 2026贵州安创数智科技有限公司社会公开招聘119人备考笔试题库及答案解析
- 《登泰山记》课件+2025-2026学年统编版高一语文必修上册
- 临床医学晕厥课件
- 2025国家移民管理局出入境管理信息技术研究所招聘笔试历年常考点试题专练附带答案详解2套试卷
- 2025年鸡西市恒山区煤炭生产安全管理局招聘合同制煤矿驻矿员20人笔试考试备考试题及答案解析
- 2025至2030中国非致命性武器行业调研及市场前景预测评估报告
- 2025年泸州辅警招聘考试真题必考题
- 中职汽车维修教学中数字化技术应用的实践课题报告教学研究课题报告
- 传感器在临床中的应用
- 形势与政策(2025秋)超星学习通章节测试答案
评论
0/150
提交评论