- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计c第三章
程序设计语言;类Class是面向对象行程序设计的基本概念
是C++最强有力的特征
是进行封装和数据隐藏的工具;1、类和对象概念
2、构造和析构函数
3、对象数组和对象指针
4、String类
5、向函数传递对象
6、对象的赋值和复制
7、静态对象
8、友元
9、类的组合
10、常类型;;1、类Class;1、类class;class 类名{
[private:]
私有数据成员 和 成员函数
public:
公有数据成员 和 成员函数
};;是函数的一种
属于一个类的成员,可访问本类的任何成员
可被指定为private、protected、public
private:只能本类调用
public:能被本类和该类对象调用
protected:(第五章介绍);(1)普通成员函数
(2)隐式内联函数
(3)显式内联函数;(2)类内定义
隐含式的内联函数
适用于较短的函数
优点:
减少函数调用开销,提高效率
缺点:
编译后代码长;(3)显示定义内联函数
;(1)类和对象的关系
类是一种数据类型
类的对象是该类型的一个实例
(2)对象的定义
①类声明同时直接定义 ②使用时再定义 ;(3)对象中的成员访问
公有成员(数据、函数)访问
访问形式
通过对象名访问
对象名.数据成员名
对象名.成员函数名[(实参列表)]
通过对象指针访问
通过对象引用访问
;类的作用域
类定义的{ }范围内
类成员的访问控制
private
public
protected;不同数据类型的存储空间分配不同
声明一个类对象时,存储空间的分配及对象数据赋初值的工作,在C++中由构造函数来完成,对象撤销时内存的收回由析构函数完成。
构造函数和析构函数可以由用户来定义,也可以由系统提供。;类是一种抽象的数据类型
不占空间、不容纳数据。类定义中不能对变量赋值
类实例化的产物对象,占空间、容纳数据
使用对象时先定义,后使用
定义对象时,对象数据成员赋初值,称为对象初始化
构造函数的作用就是完成对象初始化
构造函数
一种特殊的成员函数
主要作用是为对象分配存储空间,为成员变量赋初值
构造函数名必须和类名相同,无返回值,参数任意;;;带成员初始化列表的构造函数形式:
类名::构造函数名([参数列表])[:(成员初始化列表)]
{//构造函数体}
成员初始化列表格式:
数据成员1(初始值1),成员2(初始值2),……
例如:
Complex::Complex(double r,double t):real(r),imag(t){ };;1、用户自定义,系统不提供
2、无参构造函数创建对象
Date date1;
Date date1();
Date date1(2014,1,4); ;;析构函数时一种特殊的成员函数
名字为:~类名
无返回类型,无参。
只能有一个析构函数,用户显示定义或系统生成默认析构函数.
对象撤销时,系统会自动调用析构函数
主函数结束、调用exit函数时,对象被撤销系统会自动调用析构函数
对象在函数体内创建,函数调用结束,对象释放,析构函数被调用
new创建的对象,用delete释放时,自动调用析构函数
;一维对象数组:
格式
类名 数组名[下标表达式]
Complex com[10];
使用对象数组:
数组名[下标].成员名
com[1].abscomplex();;;指针存放对象地址,通过对象地址访问对象
类名 *对象指针名
1、用指针访问单个对象成员
2、用指针访问对象数组;在C++中,内存分成5个区,他们分别是堆、栈、全局/静态存储区、常量存储区、代码区。
栈stack,函数局部变量,内存容量有限。编译器自动分配、回收
堆heap,new分配的内存块,释放编译器不管,delete。否则持续到程序结束后,操作系统会自动回收。
全局/静态区static,全局变量和静态变量。,程序结束后回收
常量存储区,常量、字符串,程序结束系统回收。
代码区:函数二进制代码
;类-?对象
用类来创建对象,就是为数据和函数的代码分配存储空间
为节省存储空间,C++创建对象时仅分配数据成员的空间(堆或栈),成员函数则被分配到存储空间中的一个公用区域(代码区),由该类的所有对象共享。
;函数代码段 共享
不同的对象调用怎么区分
this指针(自引用指针):
C++为成员函数提供的指针
哪个对象调用成员函数,就把该对象地址赋予this指针;C++支持两种类型字符串
字符数组:包含结束符”\0”,strcpy、strcat、strlen等字符串操作
字符串类:String类,头文件中#include string
string类
您可能关注的文档
- 相互作用、牛顿运.ppt
- 相似三角形应用举例2015-12-2.ppt
- 相声中的精彩对白.ppt
- 盘古LED宣传2011.ppt
- 直线与圆的位置关系[第五课时]三角形的内切圆.ppt
- 相对论动力学-动量和能量new.ppt
- 相对论习题课[大学物理].ppt
- 相对论力学和电动力学.ppt
- 相平衡主要三元相图阅读与解析.ppt
- 相对论的时空观和动力学.ppt
- DB23_T 3866-2024冰上龙舟赛事组织服务规范.docx
- DB32 2163-2012 棉纱单位可比综合电耗限额及计算方法.docx
- DB32∕T 2429-2013 棉花田间生长发育观察记载规范.docx
- DB23_T 3820-2024 工业互联网综合平台数据质量管理规范.docx
- DB23_T 3474-2023非煤智慧矿山信息系统技术规范.docx
- DB3201_T 1106-2022 工程地质层划分技术规范.docx
- DB33T 2515-2022公共机构“零碳”管理与评价规范.docx
- DB3301_T 0415-2023 装修垃圾收运处置管理规范.docx
- DB3311/T 106―2019“丽水山居”民宿服务要求与评价规范.docx
- DB3201T 1127-2022 慈善捐赠受赠管理规范.docx
最近下载
- 亿赛通电子文档安全管理系统V5.0--客户端使用手册V1113379.pdf VIP
- [标准规范]煤矿窄轨铁道维修质量标准及检查评级办法(精编).doc VIP
- 人教统编版小升初语文总复习专题七:句式变换课件(共28张PPT).ppt VIP
- 2025重庆永川区板桥镇村(社区) 后备干部选拔笔试备考试题及答案解析.docx VIP
- 深度解析《GBT 44026-2024预制舱式锂离子电池储能系统技术规范》.pptx
- 品质部各岗位职责说明书.pdf VIP
- 2022.01 深圳南山红花岭工业区城市更新项目一期建筑方案设计 华艺.pdf VIP
- 电冰箱安全技术规程培训.pptx VIP
- 07FK02 防空地下室 通风设备安装.pdf VIP
- 解决我国农民负担问题的路线图设想-中国发展.pdf
文档评论(0)