- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c_第8讲
面向对象程序设计 第8讲 第五章 类和对象(二) 引言 面向对象技术 是一种较为先进的技术 比较符合人们观察事物的思维方式 将事物的静态特性和动态特性结合起来考虑 类是面向对象程序设计的核心. 一种新的用户定义的数据类型,也是实现抽象类型(ADT)的工具。 类和对象关系 抽象和具体 类的定义格式 class类名 { public: 成员函数或数据成员的说明 private: 成员函数或数据成员的说明 }; 返回类型 类名::成员函数1(参数) { } 类的定义格式 访问控制符 public:为公有属性,private:为私有属性; 访问控制符在类体内,顺序无关,而且可以有多个访问控制符。 各个成员函数的实现是类定义中的实现部分,这部分包含所有类体内说明的函数的定义。如果一个成员函数在类体内定义了,实现部分将不出现。如果所有的成员函数都在类体内定义,实现部分可以省略。 ⑶成员的实现部分格式:类名::函数名(参数表) 对象的定义 对象是类的实例;对象属于某个类。因此定义对象之前,一定要先定义该对象的类。 对象的定义格式 类名对象名称 对象成员的表示方法 一般对象: 对象名.成员名 对象名.成员名(参数表) 指针对象: 对象名?成员名 对象名?成员名(参数表) ※两种表示方式等价 定义类应注意事项 ①类体内不允许对所定义的数据成员进行初始化。 ②类中数据成员的类型是任意的,可以包含整型、浮点、字符、指针和引用等。也可以是对象。另一个类的对象也可以作为该类的成员。 ③一般地,在类体内线说明公有成员,它们是用户所关心的,后说明私有成员,它们是用户不感兴趣的;说明数据成员时,一般按照类型的大小,由小至大说明,这样可以提高空间利用率。 ④习惯上,将类的说明部分和实现部分分开放置 构造函数 构造函数的功能 构造函数是自动调用的。 在创建对象时,使用给定的值来将对象初始化。 构造函数名和类名相同,不指定类型,它有隐含的返回值,该值有系统内部使用;该函数可以有参数,也可以无参数; 格式 类名::类名([参数]) { } 析构函数 格式: 类名::~类名() { } 析构函数可以被调用,也可以系统调用,下面两种情况下,析构函数被调用 a)如果一个对象被定义在一个函数体内,则当这个函数结束时,该对象的析构函数被自动调用。 b)当一个对象用new运算符被动态创建时,在使用delete释放时将自动调用析构函数。 缺省构造函数 在类定义中如果没有定义任何构造函数时,编译器自动生成一个不带参数的缺省构造函数,其格式如下: 类名::类名() { } 按构造函数的规定,缺省构造函数名同类名;缺省构造函数的这样格式也可以由程序员定义在类体内。在程序中定义一个对象而没有指明初始化时,则编译器便按照缺省构造函数来初始化该对象。 缺省析构函数 同样,缺省析造函数格式如下: 类名::~类名() { } 缺省构造函数是一个空函数。 拷贝构造函数 功能 用一个对象来初始化一个被创建的同类的对象,它是在初始化时被用来将一个已知的对象的数据成员的值拷贝给正在创建的另一个同类的对象。 格式: 类名::类名(const 类名引用名) { } 下面三种情况调用拷贝构造函数: 明确表示有一个对象初始化另一个对象时,如:CDog dog(dog1) 当对象作为函数实参传递给函数形参时,如: f(dog);这里dog是实参; 当对象作为函数返回值时,如: return dog2; 复数类 分析: 静态属性: 包含虚部、实部 动态属性: 信息显示 结果: CComplex类 整型数集合类 描述与分析: 可以用一个数组存放集合元素,并记录其元素个数 操作: 清空集合、判别是否为空、判别某整型数是否属于该集合,添加元素到集合中 结果: CSet集合类 类:学生 学生学籍管理中要用到学生的基本信息 分析 静态属性: 学号、姓名、年龄、性别 姓名用变长类型描述(指针) 动态属性 修改静态属性的操作,学生信息的显示 结果 能够详细描述学生信息的类 拷贝构造函数 看书 P147 成员函数的特性 内联函数和外联函数 Class类名 { 类型 f(参数); } inline 类型 类名::f(参数) { } 重载性 缺省参数:其条件和一般函数的缺省参数的条件一样 静态数据成员 定义和声明时前面加static 初始化: 数据类型 类名::静态数据成员=值 使用方式: 类名::静态成员名 注意: 初始化在类体外,前面不加static 初始化不加访问权限控制符 初始化时前面加类作用域符,属于类而不属于对象 必须进行初始化 静态成员函数 属于类,不属于某个对象 静态成员函数不能直接引用非静态成员,可以引用静态成员,如果要引用非静态成员,可以通过对象 声明:
您可能关注的文档
- 01金属切削的基本要素.ppt
- 08清单规范wyy讲义.ppt
- 1000kV变压器技术说明书.pdf
- 04工件的定位夹紧与夹具设计.ppt
- 03机床、刀具和加工方法.ppt
- 1-讲义电机专业培训.ppt
- 128dB数控衰减器的设计.pdf
- 2005年个体私营企业协会工作总结暨2006年工作意见.doc
- 2006`2007学年度第二学期学校工作总结.doc
- 1314数字电路必要课程.ppt
- c++_第9讲.ppt
- c++_第10讲.ppt
- CHINA LAUNCHES STOCK INDEX FUTURES中国推出股指期货.pdf
- CHINA NATIONAL ACTION PROGRAM TO中国国家防治荒漠化行动方案(摘要).pdf
- China’s development strategy中国的发展战略.pdf
- China Airlines Annual Report 2007v中国航空2007年年度报告.pdf
- China’s Higher Education Expansion and its Labor M.pdf
- China Security Debating China's Future 中国安全辩论中国的未来.pdf
- China’s Pension System.pdf
- cpu课程设计.ppt
最近下载
- Module 7Unit 1 I helped mum.(说课稿)-2023-2024学年外研版(三起)英语四年级下册.docx
- Niku《机器人学导论》课后习题答案——Introduction to Robotics.pdf
- DG_TJ 08-19-2023 园林绿化养护标准(正式版).docx
- 天津经济技术开发区管理委员会招聘笔试题库2025.pdf
- 富士FINEPIX F500EXR_F550EXR数码相机(中文)说明书.pdf
- 华为公司QCC品质圈课件.pptx
- 2024《海天味业财务管理中存在的问题及完善建议》9800字.doc
- 2023年浙江长征职业技术学院单招考试综合素质题库及答案解析.docx
- 读书分享《蛤蟆先生去看心理医生》.pptx
- 2024年中考语文一轮专题复习:图文转换 专项练习题(Word版,含答案).docx
文档评论(0)