版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-1-,8.1类是限制变量可以参与的计算范围的数据类型。例如,整数变量可以执行模块“%”运算,但不能执行实际变量。数据类型限制变量可以获得的数字范围。例如,整数变量的值为1,2.可以使用,100,但不能使用实数,如值3.1415。在c中,类实际上对应于用户定义的数据类型,对象是该数据类型的变量。类-数据类型对象-变量,-2-,8.2类的定义,类表示现实生活中的事物种类,如“学生”。事物具有其特性或属性,它们是类的成员数据。事物可以有动作动作,也可以被使用函数实现的特定动作动作操纵,也可以称为构成类的函数成员或成员函数。-3-,8.2类定义,类声明具体说明了类配置。类语法是类名public:公共
2、成员数据。公共成员函数Protected:成员数据保护成员保护函数Private:个人成员数据;您也可以单击个人成员函数打印节。-4-,其中member可以是数据或函数。成员数据的声明方式与常规变量相同。成员函数是描述类的对象可以执行的操作,通常在类中声明原型,并在类宣言外部定义函数的具体实现。类8.2定义,-5-,类的成员函数描述类的行为或操作。在函数的原型声明类体中,原型描述了函数的参数表和返回值类型。函数的具体实现通常记录在类宣言外部。在类外部定义成员函数的语法包括返回值类型类名:3360成员函数名称(参数表)函数体,8.2类定义,-6-,定义类后,只有描述该类的数据类型。使用名为“类”
3、的数据类型定义变量时,将生成该“类”的对象。物件也称为实例。例如,student stu (1,“Wang”,m);定义物件名称为stu的Student类型的物件。8.3对象定义、-7-、对象定义和常规变量定义相同。定义对象时分配存储空间,就像定义变量时分配存储空间一样。对象占用的内存空间是类的数据成员占用的空间总和。类的成员函数存储在代码区域中。类的成员是抽象的,对象的成员是特定的。类的数据成员没有特定的属性值。只有物件的成员可以有特定的属性值。8.3对象定义,-8-,8.3对象定义,使用类成员交叉访问成员名称类外部的“对象名称”。使用“成员名称”方法访问public属性的成员、-9-、类中
4、的成员函数可以有多种特殊格式,例如具有默认参数值的成员函数、内部等。8.4类成员函数、-10-、class student public 3360 student(Intel/构造函数void print student();/printStudent函数声明void set nationality(char * pnationality)。/设定国籍函数private: int id/学号变量定义char * name/名称文字指针变量char sex定义;/定义性别变量char * nationality/国籍字符指针变量定义,具有8.4.1默认参数值的成员函数,-11-,void stu
5、dent 3360: set nationality(char * pnation ality=China)nation=0) strcpy (nationality,pnationality);调用:Student stu(1,wang,M);stu . setnation ality();具有8.4.1默认参数值的成员函数,-12-内嵌成员函数(如果在类中定义了成员函数的特定实现)。定义函数时没有其他说明,因此称为隐式声明的行内成员。8.4.2行内成员函数,-13-,8.4.2行内成员函数,可以在类中描述原型,在类外部提供函数体实现,并在函数名称前使用类名进行限定。还可以直接向类提供函数主
6、体,以形成行内成员函数。在类中声明行内成员函数的方法:将函数主体放在类宣言(隐式)中。使用Inline关键字(显示)。-14-,class student public : void print student();/打印所有信息/flag根据值打印其他信息/flag=1、打印id /flag=2、打印name /flag=3、打印sex/flag=4 PP、8.4.3重载成员函数、-15-、关键字public、protected和private说明类成员的访问控制属性。个人成员只能从牙齿类的成员函数中访问。公共成员是类外部的接口,外部对象在实现类宣言和类(函数)后可以访问公共成员。“受保护”
7、(protected)成员的可访问性类似于与继承相关的个人成员的属性。类8.5成员的访问属性、-16-、访问控制属性的注释:在类声明中,这三个茄子访问控制属性可以按任何顺序出现,也可以不出现。关键字(如Public)也可以多次出现,但成员只能有一个访问控制属性。如果不写入访问控制属性关键字,则默认值为private。写文章的时候通常习惯把public放在最前面,读起来很容易。因为它们在对外访问时需要知道。通常,一个类的数据成员必须声明为个人成员,这样封装才能更好。类必须具有作为外部接口的公共函数成员。否则,其他代码包括类、8.5类成员的访问属性、-17-、8.5类成员的访问属性、-18-、8.
8、6对象的使用、对象是类的特定实例、类和对象的关系等通用和特殊关系。在C中,类是用户定义的数据类型,对象是该数据类型的变量。因此,可以通过定义全局对象、在函数主体中定义本地对象或从堆中动态请求空间来创建对象。您也可以定义物件阵列,并使用物件做为函数的收购和传回值。-19-、8.6.1对象指针、声明对象指针的常用语法格式为类名*对象指针名称。使用对象指针以对象指针名称-公共成员格式访问对象成员。示例:Clock c;Clock * pc1=new ClockClock* pc2=,-20-,8.6.2 this指针,问:一个类中的所有对象调用的成员函数执行相同的代码片段。那么,成员函数如何知道该对
9、象当前正在访问?答:this指针表示成员函数当前操作的数据所属的对象。当其他对象调用成员函数时,this指针指向其他对象,这样您就可以访问其他对象的数据成员。-21-、8.6.3对象数组、对象数组中的元素是对象,不仅有数据成员,还有可以从数组元素调用成员函数的函数成员。示例:student stu10,-22-,8.6.4对象用作函数的收购和返回值,可以将对象作为参数传递给函数,也可以从函数返回对象。将对象直接用作参数,在调用函数时传递值,并将实际参数的值复制到格式参数。如果类中有很多数据成员,则必须一一复制。但是,由于牙齿参数效率低下,因此可以使用对象指针或对象引用传递函数参数。-23-,8
10、.7构造函数,构造函数用于在创建对象时将对象组织为特定值,或将对象初始化为特定状态。创建对象时由系统自动调用。如果在程序中未声明,则会自动创建接受内联函数、重载函数、具有默认格式收购值的函数、-24-、8.7构造函数和class Clock public 3360 Clock(intnewh,intnewm)的默认格式的构造函数void show time();Private : inthour、minute、second。-25-,实施构造函数:clock 33603360 clock(int h,int m,int s)hour=h;minute=M;second=S;创建对象时构造函数的
11、角色:void main() Clock c(0,0,0);/隐式调用构造函数以将初始值用作实际参数。C.show time();-26-,8.7构造函数,每个对象与其他对象区别的地方主要有两个。另一个差异是对象的标识符,即对象的名称,固有的差异是对象本身的属性值,即数据成员的值。定义对象时,可以分配存储空间,也可以将称为对象初始化的初始值分配给数据成员。c程序中的对象初始化操作由特殊成员函数(即构造函数)执行。由于初始化操作因对象类型而异,因此构造函数依赖于类。换句话说,每个类必须定义其自身的构造函数,即类的成员函数。-27-,定义构造函数的常用格式是类名public:类名(格式参数表)。/
12、建构函式的原型/类别的其他成员类别名称:3360类别名称(格式参数表格)/建构函式实作/函数主体,8.7建构函式,-28-,建构函式的函数名称与类别名称相同。没有返回值。构造函数必须是公共函数。作为类的成员函数,构造函数可以直接访问类的所有数据成员。类内部定义的构造函数是内嵌函数。建构函式可以具有基本造型参数值,也可以重新载入。8.7构造函数,-29-,如果在声明类时没有为类定义构造函数,则编译系统会在编译时自动生成基本格式的构造函数。默认构造函数是不提供参数的构造函数。8.7构造函数,-30-,8.8解析函数,删除对象前清理操作完成对象生命周期结束时,系统自动调用对象,然后释放对象所属的空间
13、。如果程序不声明析构函数,编译器将自动生成默认析构函数。-31-构造函数和析构函数的示例:# include class point public 3360 point(intxx,intyy);point();/.其他函数原型private: int X,int Y;-32-,point 33603360 point(intxx,intyy)x=xx;Y=yypoint 33603360 point()/.其他函数实现,与-33-构造函数不同,在对象寿命结束时,必须调用析构器来释放对象占用的内存空间。与构造函数一样,析构函数也是类的公共成员函数。牙齿函数的名称不能通过在类名前添加“”返回值。与构造函数不同,解析函数不接受参数,解析函数不能重新加载。语法分析函数在对象寿命结束时由系统自动调用。如果程序员未定义析构函数,则将自动生成和调用默认析构函数。8.8解析函数、-34-、复制构造函数是函数的形式参数对类中对象的引用的构造函数。通过等号复制对象时,将自动调用复制构造函数。如果程序在定义类时没有显式定义复制构造函数,则还会自动创建默认复制构造函数,以便逐个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南充市园区产业发展服务专员招聘考试真题2025
- 2025年深圳市龙岗区人民医院招聘考试试卷真题
- 2026年小学二年级语文第二学期期末考试卷及答案(八)
- 国内生命科学领域实验细胞采购避坑指南
- 消毒凝胶手部皮肤护理
- 《猴子的烦恼》课件(共25张)北师大版 三年级下册数学
- 环保、消防、职业健康管理制度
- 颈部护理测试题及答案
- 客房服务员试卷及答案
- (新)医院医院感染管理制度汇编2篇
- 2026年中医博士研究生入学考试综合试卷(含答案及解析)
- 2026高考作文终极预测10大母题超详细指导(写作指导+误区+热点素材+高分范文)
- 2026年安全生产月-人人讲安全、个个会应急-排查整治风险隐患
- 2026年高考作文备考预测之“新质生产力与科技自强”:主题素材+写作维度+试题分析
- 2026年江西有色智联科技有限公司招聘6人笔试参考试题及答案解析
- 2026厦门国有资本运营有限责任公司招聘笔试历年常考点试题专练附带答案详解
- 2026山东威海热电集团有限公司招聘44人笔试参考题库及答案解析
- 雨课堂学堂在线学堂云《政治学基础(暨南)》单元测试考核答案
- 2026高考作文十大热考主题:长征精神(标题、金句、人物、分论点、范文)
- 2026西北政法大学专职辅导员招聘7人备考题库及答案详解(有一套)
- 2026年陕西好猫卷烟材料有限责任公司招聘(10人)笔试模拟试题及答案解析
评论
0/150
提交评论