- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计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类
文档评论(0)