C教程从入门到精通chap06

上传人:gb****c 文档编号:243022464 上传时间:2024-09-14 格式:PPT 页数:42 大小:166KB
返回 下载 相关 举报
C教程从入门到精通chap06_第1页
第1页 / 共42页
C教程从入门到精通chap06_第2页
第2页 / 共42页
C教程从入门到精通chap06_第3页
第3页 / 共42页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,第6章 类 与 对 象,类和对象的基本概念,构造函数与析构函数,内联函数,静态成员,对象数组,指向对象的指针,在函数中使用对象,this,指针,友元,类和对象的基本概念,面向对象程序设计的特点,封装,封装性是指将代码和代码所要处理的数据绑定在一起,并采用一定的机制保证代码和数据的安全,不受外部因素的干扰,多态,指在继承的基础上允许使用同一个接口来访问一类通用的操作,继承,一个对象从其他对象中获取成员的过程,定义类,在定义一个类时,需要定义它所封装的数据和函数,class,类名,数据成员;,成员函数;,;,访问权限类型,Private,表示私有类型,它表示该类数据成员和成员函数都是类的私有成员,只能被本类中的成员函数访问。,private,关键字可以省略不写,但是要求所有的私有成员都写在类中开始的位置。,Public,表示公有类型,它表示该类数据成员和成员函数都是类的公有成员,既可以被本类中的成员函数访问,也可以被类之外的函数访问。因此公有成员可以作为类与外部的接口。,Protected,表示保护类型,它表示该类数据成员和成员函数都是类的保护成员,这样的成员允许其他的类继承。,定义类的通式,class,类名,private:,私有数据成员,私有成员函数,public:,公有数据成员,公有成员函数,protected:,保护数据成员,保护成员函数,;,定义对象,在定义类之后,就可以定义这个类的对象了。,例如,要定义一个,Circle,类的对象,objCircle,,就可以使用下面的语句:,Circle objCircle;,Circle,是类名,objCircle,是对象名。,类在定义完成并经过编译后系统并不会在内存中为这个类分配空间,而是在定义了这个类的对象的时候才会为这个对象分配内存空间。因此可以说类是一个抽象逻辑框架,它定义了它的成员之间的关系,而对象则是类的实例,只有对象才真正占用内存空间。,使用类和对象,一位数的四则运算,构造函数与析构函数,构造函数,所谓构造函数就是在对象创建时起作用的一个特殊成员函数,因此通常使用构造函数来实现类中数据的初始化。,构造函数从形式上看就是一个函数,但是规定它必须与类的名字一致,并且没有返回类型。,析构函数,析构函数则是构造函数的补充。析构函数是在对象被销毁之前起作用的特殊成员函数,通常用于做一些收尾的工作。,析构函数看起来也与一般成员函数一样,但是它的函数名必须是它所属类的类名前面加上一个,并且同样不允许有返回值。,使用构造函数和析构函数,关于构造函数的说明,虽然构造函数不允许有返回值,但是它可以带一个或多个参数。参数的写法与一般函数的参数一样,只是在调用这个构造函数的时候必须指明参数的值。,内 联 函 数,内 联 函 数,内联函数存的意义在并不是为了实现面向对象程序设计,而是为了提高程序的执行效率。,如果定义一个类的成员函数是内联函数,那么在调用内联函数时,这个函数是在被调用的点进行内联扩展,即把被调用的内联函数的代码原样不动地复制到主调函数中,而无须进行前面提到的所有操作,这样可以省略很多,CPU,时间,因此它可以使程序的整个运行速度加快。,定义内联函数,第一种方法是在定义类时把函数的函数体写在类的里面,第二种方法是仍然在类中只写成员函数的原型,而在类的外面定义成员函数的函数体时在前面加上,inline,关键字。,使用内联函数,静 态 成 员,静态成员,静态数据成员和静态成员函数,定义方法,在定义数据成员和成员函数原型时在前面加上,static,关键字。,C+,认定静态成员与全局变量一样,在整个文件的作用域内有效,因此对静态数据成员的初始化和函数体的定义都必须在类的外面,并且不用定义类的对象,就可以访问静态数据成员。,使用静态数据成员,对 象 数 组,定义对象数组,定义对象数组的方法与定义普通数组的方法相似。只要定义了类,就可以定义这个类的对象数组。,使用对象数组,指向对象的指针,定义指向对象指针的方法与前面讲到的定义指针的方法相似。,例如,如果定义了类,test,,它有两个公有数据成员,i,和,j,,以及一个公有成员函数,print(),,那么就可以采用下面的方法定义一个指向对象的指针,p:,test *p;,为这个类创建了一个对象,mytest,p=,为了能够通过,p,来访问,mytest,的成员,i, j,和,print,,需要使用指向操作符“-”:,p-i,p-j,p-print,使用指向对象的指针来创建对象,使用,new,运算符创建对象,test *p=new test;,或者,test *p;,p=new test;,使用,delete,运算符销毁对象,delete p;,使用指向对象的指针,使用指向对象的指针实现例6.6的功能,在函数中使用对象,在函数中使用对象时构造函数与析构函数的作用,通过引用传递对象,让函数返回一个对象,this指针,this,this在C+中是一个关键字,每次调用类的成员函数时都会有一个this指针自动指向调用这个函数的对象。在成员函数内部,可以使用this指针来访问这个类的所有私有数据。,使用this指针,友 元,友元,一般情况下,只有类的成员函数才可以访问这个类的私有数据成员。,如果定义一个非成员函数为这个类的友元函数,那么这个函数也有权利访问这个类的私有数据成员。,定义友元函数,在类的内部写出函数的原型,并在函数原型的前面加上friend关键字。,一个函数可以作为多个类的友元。,使用友元函数求一个线段的长度,比较上衣和鞋子的颜色是否相同,友元类,在C+中,友元还可以是一个类。,如果类A具有一个友元类B,那么B中定义的所有成员函数都可以作为A的友元函数。,友元类的使用,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!