- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++程序设计(3-8).ppt
第三部分 面向对象编程技术 第8章 类(Class) 第8章 类 类(class)是面向对象程序设计(OOP)实现信息封装的基础 类是用户定义类型,也称类类型 类由一组数据和对数据的操作构成,类的实例称为对象 C++的类是由C语言的结构体演变而来的 1.从结构到类 结构由固定的成员构成 各成员可以具有不同的数据类型 一个结构变量在内存中占有一片连续的存储空间 定义类 定义类 定义类 定义类 定义类 定义类 定义类 使用类 使用类 访问对象成员 访问对象成员 访问对象成员 定义类 2.成员函数 访问对象成员 访问对象成员 访问对象成员 访问对象成员 例 成员函数的存储方式 成员函数的存储方式 this指针 例 常成员函数 类的数据成员 一般数据成员 常数据成员 const double x; 类的成员函数 一般成员函数(非常成员函数) 常成员函数(数据保护) void showPoint() const; 常成员函数 常成员函数 常成员函数 例 对象的常引用 C++程序设计中经常用对象的常引用作为函数参数。 保护对象的数据成员为只读,不能改变数据成员的值,否则编译出错 不能调用非常成员函数,否则编译出错 不必建立实参的拷贝(效率) 重载成员函数 3.静态成员 关键字static可以用于说明一个类的成员(数据成员、成员函数) 静态成员提供了一个同类对象的共享机制 将一个类的成员说明成static时,这个类无论有多少个对象被创建,这些对象共享这些静态成员 静态成员属于类,不属于单独的哪一个对象(虽然能被不同的对象使用) 静态数据成员 使用公有静态数据成员 使用公有静态数据成员 使用公有静态数据成员 使用公有静态数据成员 静态成员函数 静态成员函数冠以关键字static 静态成员函数属于类而不属于类的对象(虽然它可以被类的对象调用) 静态成员函数与普通成员函数的区别是:它的参数表中没有隐含this指针。因此,它不能访问非静态数据成员 静态成员函数专门用于访问类的静态数据成员 4.友元 友元函数 友元普通函数 友元成员函数 友元类 类的封装性要求类的成员(数据成员、成员函数)由类的成员函数来访问 类的公有成员函数是类的内部与外界的接口 问题 普通友元函数 友元成员函数 当把类A的成员函数声明成类B的友元函数时,则类A可以直接访问类B对象的私有成员(数据成员、成员函数) 友元类 若B类是A类的友元类,则B类的所有成员函数都是A类的友元函数 友元类通常设计为一种对数据操作或类之间传递消息的类(完成一定的功能) 友元? 友元提高了访问性能 破坏了类的封装性 5.操作符(运算符) C++将操作符也看成是与函数同样性质的实体。 操作符可以重载(可称为操作符重载函数) 操作符重载规则 拒绝创新 只能重载已有的操作符 不能创建新的操作符 操作符重载规则 不能重载的操作符 . 成员访问操作符 (保证访问成员的功能不能被该变) .* 成员指针访问操作符 (同上) :: 域操作符 (运算对象是类型而不是变量或一般的表达式) sizeof 长度符作符 (同上) ? : 条件操作符 不具备重载特征 操作符重载规则 优先级和结合性不变 操作数个数不变 重载操作符函数不能有默认参数 专门处理对象 重载的操作符函数必须和用户定义的自定义类型的对象一起使用,其参数至少有一个(隐含一个)是类对象(或类对象的引用) 防止用户修改用于标准类型数据的运算符的性质 忌意义相左 操作符重载后,就给操作符赋予了新的意义,新的意义应该反映操作的本质。 操作符重载方式 操作符函数可重载为成员函数或友元函数 关键区别在于成员函数有this指针,友元函数没有this指针 不管是成员函数还是友元函数操作符的使用方法相同 但传递参数的方式不同,实现代码不同,应用场合不同 操作符函数重载为成员函数 操作符函数重载为成员函数 操作符函数重载为友元函数 操作符函数重载为友元函数 操作符函数重载为友元函数 思考 一元操作符重载函数 重载和 istream和ostream是C++预定义的流类 cin是istream的对象,cout是ostream的对象 操作符由ostream重载为插入操作符,用于输出基本数据类型 操作符由istream重载为提取操作符,用于输入基本数据类型 可将和重载以输出用户自定义数据类型,重载有两种方式: 友元函数 一般函数 ++、--的重载 ++、--的重载 ++、--的重载 ++、--的重载 ++、--的重载 前++、-- X operator++(X a); X operator--(X a); 后++、-- X operator++(X a, int); X operator--(X a, int); ++、--的重载 前++、--
您可能关注的文档
最近下载
- 第四章战国、秦、汉、三国时期的建筑详解.ppt VIP
- T_HAEPCI 55—2023(有色冶炼场地土壤-地下水重金属污染协同修复与管控技术指南).pdf VIP
- 青春筑梦婴幼儿托育服务与管理专业启航未来职业生涯.pptx VIP
- 【新教材】2025-2026学年统编版(2024)三年级道德与法治上册第1课《学习伴我成长》课件.pptx
- T ACEF 111—2023 焦化污染土壤多环芳烃生物修复智能监测预警技术指南.pdf VIP
- MTT 114-2005 煤矿用多级离心泵.pdf VIP
- TACEF 112-2023 焦化污染土壤多环芳烃生物修复智能监测设备配置技术指南.pdf VIP
- GBT18479-2001 地面用光伏(PV)发电系统 概述和导则.pdf
- 低血容量性休克的护理.pptx VIP
- 2《住宅项目规范》宣贯培训-第3章.pdf
文档评论(0)