- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章主要内容 类类型的定义 成员访问控制 类的成员函数 对象的创建与应用 应用举例 类类型的定义 定义格式: class 类类型名 { 访问控制符: 数据成员说明; … 成员函数说明; … }; 类成员的访问控制 类中成员具有三种不同的被访问属性: 类成员访问控制的设置 类的数据成员常设置为私有 类的实现成员函数常设置为私有或保护属性 类的接口成员函数常设置为公有属性 类的成员函数 类成员函数的定义式常放在类的定义体之外,定义体内通常只放成员函数的函数原型。 内联成员函数 类成员函数若在类的定义体内定义,系统默认其为内联函数,若在类的定义体外定义,系统默认其为非内联函数 若在类的定义体外定义的成员函数要设置为内联函数,则应在函数原型或函数定义式中加前缀inline 若成员函数体只包含几句简单语句,可设置为内联成员函数 常值成员函数 类成员函数若在函数头后加后缀const,则在该函体内不允许改变类数据成员的值。 对象的创建与使用 对象 (类的变量)与其它数据类型变量一样也有生存期、作用域及可见性等概念。 类也可通过new创建动态对象。 类也可创建指针型变量,用于指向对象。 类类型的运算 与结构类型相同,类型运算是针对对象(类变量)而言。至于类类型成员可进行所属数据类型允许的所有运算 系统默认的对象运算也只有四种: 赋值运算符(=):属于同一类类型的对象之间可以相互赋值 。 直接成员访问符( . ):允许通过常规对象对类成员进行访问。 间接成员访问符(-):允许通过指针对象对类成员进行访问。 检测长度运算符(sizeof()): 类的其它运算要通过运算符重载引入 【例】类类型的运算 rectangle rect1,*rect2=rect1; rect1.setWidth(5); rect1.setHeight(6); coutrect1.getWidth(); coutrect2-getHeight(); coutrect1.perimeter(); cout(*rect2).area(); 对象作为函数的参数和返回值 【例】比较两个矩形面积大小的普通函数 rectangle compare(rectangle r1,rectangle r2) { if(r1r2) return r1; return r2;} this指针 在类成员函数的形式参数表中,隐含有一个本身类类型的指针this,其对应实参是调用该成员函数的对象,此隐含的第一形参是系统自动添加的 【例】 this指针 rectangle*rectangle::clone( ) { rectangle*p=new rectangle; *p=*this; return p;} void main() { rectangle rect1; rect1.setWidth(7); rect1.setHeight(8); rectangle *q; q = rect1.clone(); coutq-area(); } 类与应用程序结构 C++应用程序通常由多个文件组成 通常将类的定义与类的应用分开放在不同的文件中 类的应用常放在主函数所在主文件中(*.cpp) 通常将类成员函数的说明与类成员函数的定义分开在不同类型文件中 成员函数的原型放在类定义中,类定义放在类库头文件(*.h)中 成员函数的定义放在类源文件(*.cpp)中 类类型与结构类型的关系 C++将继承于C的保留字struct的功能予以扩充,使其也能用于定义类类型 保留字class与struct的区别仅在于:用class定义的类成员默认的访问控制是private,用struct定义的类成员默认的访问控制是public 若将结构类型限定为没有成员函数且其数据成员都是公有的自定义数据类型,则从形式的角度看,结构是类的最简单的一种特例。 但若从程序设计角度看,二者有着质的差别:结构类型由于不含成员函数,不能用于面向对象程序设计,只能用于面向过程程序设计 对象应用举例 【例】 队列的概念及基本操作 队列是先进先出的一种数据结构。 队列中数据只能从队首出列,队列外数据只能从队尾入列 【例】用数组实现的队列类 // 队列类queue定义头文件: const int ARRAY_SIZE=10; class queue { public: void init(); void enQueue(int newElem); int deQueue(); private: int elem[ARRAY_SIZE]; int first; int length; }; * 下一页 返本章 * * 【例】 class
您可能关注的文档
- 第十章 K3人力资源系统.pdf
- 第十章 K3日历式排班导入方法介绍.pdf
- 第十章 k3商贸单据组件参考.pdf
- 第十章 K3序时簿公用功能.ppt
- 第十章 K05-华能北京热电厂机组顺序控制系统(SCS)调试措施.pdf
- 第十章 K22产品手册 V2.1.pdf
- 第十章 K60-CH09-DEBUG.pdf
- 第十章 K200键盘规格书.pdf
- 第十章 K-880步进电机控制卡.pdf
- 第十章 Kademlia协议原理简介.pdf
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)