C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 ppt 作者 吕凤翥 王树彬_ 第6章 类和对象(一)

上传人:E**** 文档编号:89343176 上传时间:2019-05-23 格式:PPT 页数:38 大小:197.50KB
返回 下载 相关 举报
C++语言程序设计教程 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  吕凤翥 王树彬_ 第6章 类和对象(一)_第1页
第1页 / 共38页
C++语言程序设计教程 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  吕凤翥 王树彬_ 第6章 类和对象(一)_第2页
第2页 / 共38页
C++语言程序设计教程 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  吕凤翥 王树彬_ 第6章 类和对象(一)_第3页
第3页 / 共38页
C++语言程序设计教程 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  吕凤翥 王树彬_ 第6章 类和对象(一)_第4页
第4页 / 共38页
C++语言程序设计教程 第2版  普通高等教育“十一五”国家级规划教材  教学课件 ppt 作者  吕凤翥 王树彬_ 第6章 类和对象(一)_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 ppt 作者 吕凤翥 王树彬_ 第6章 类和对象(一)》由会员分享,可在线阅读,更多相关《C++语言程序设计教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 ppt 作者 吕凤翥 王树彬_ 第6章 类和对象(一)(38页珍藏版)》请在金锄头文库上搜索。

1、第6章 类和对象(一),6.1 类的定义格式和对象的定义方法,6.1.1 类的定义格式,/说明部分 class public: private: ; /实现部分 : () ,定义类的一般格式:,关于类定义的若干说明如下。 定义类的关键字通常用class,也可以用struct等。 类的定义由两大部分构成:说明部分和实现部分。 类的成员分为数据成员和成员函数两种。, 类的成员具有访问权。类成员的访问权限有如下3种。,public(公有的):公有成员不仅在类体内是可见的,而且在类体外也是可见的。 private(私有的):私有成员仅在类体内是可见的,在类体外是被隐藏的。 protected(保护的)

2、:保护成员对于定义它的类来讲,相当于私有成员;对于该类的派生类来讲,相当于公有成员。, 成员函数可以定义在类体内,也可以定义在类体外。,(1)先定义类类型,再定义对象 这种分开定义对象的格式如下: ;,6.1.2 对象的定义方法,(2)定义类类型同时定义对象 这种同时定义对象的格式如下: class ;,(3)使用无名类直接定义对象 用无名类直接定义对象的格式如下: class ;,(1)一般对象的成员表示用运算符。 . .(),6.1.3 对象成员的表示,(2)指向对象指针的成员表示用运算符- - - (),(4)对象数组元素的成员表示同一般对象 . 见书中例6.1。,6.2 对象的初始化,

3、构造函数的主要功能就是用来初始化对象。,6.2.1 构造函数的功能、种类和特征,1构造函数的功能,构造函数通常有如下3种。 (1)默认构造函数 这种构造函数的特点是不带参数。 默认构造函数用户可以定义。如果在一个类体中,用户没有定义任何构造函数时,系统会自动创建一个默认的构造函数。,2构造函数的种类,(2)带参数的构造函数 构造函数可以带有一个或者多个参数。,(3)拷贝构造函数 拷贝构造函数是用来使用已知对象给所创建对象进行初始化时所用的构造函数。,拷贝构造函数的格式如下: ( & ) 如果一个类中,用户没有定义拷贝构造函数时,系统自动创建一个默认的拷贝构造函数。,构造函数还具有与一般成员函数

4、不同的特点。 构造函数的名字同类名。 说明或定义构造函数时不必指出类型,也无任何返回值。 构造函数是系统在创建对象时自动调用的。,3构造函数的特点,析构函数的功能正好与构造函数相反,它是用来释放所创建的对象的。一个对象在它的寿命结束时,系统将会自动调用析构函数将它释放掉。,6.2.2 析构函数的功能和特点,析构函数与一般成员函数不同的特点。 析构函数名同类名,为与构造函数区别在析构函数名前加“”符号。 析构函数定义时不必给出类型,也无返回值,并且无参数。 析构函数是由系统自动调用。,如果一个类体内,用户没有定义析构函数时,系统会自动创建一个默认的析构函数。 析构函数由于没有参数,它不能被重载。

5、 见书中例6.2,例6.3。,6.3 数据成员的类型和成员函数的特性,6.3.1 类中数据成员类型的规定,类中数据成员的数据类型是没有限制的。 数据成员的存储类只有静态类。加存储类说明符static的为静态数据成员。,1成员函数可以重载,6.3.2 成员函数的特性,成员函数可以重载,重载时应遵循参数可以区别的规则。 见书中例6.4。,C+语言规定,成员函数如果被定义在类体内,则为内联函数。如果要使定义在类体外的函数也为内联函数,需在定义时在函数头前加上关键字inline。 见书中例6.5。,2成员函数可以被说明为内联函数,成员函数的参数可以设置为默认值。 见书中例6.6。,3成员函数的参数可以

6、设置默认值,6.4 静态成员,6.4.1 静态数据成员,在类体内使用关键字static说明的成员称为静态成员。静态成员包括静态数据成员和静态成员函数两种。 静态成员的特点是它不是属于某对象的,而是属于整个类的,即所有对象的。,对静态数据成员初始化的方法是在类体外使用如下格式进行初始化: :=; 由于静态数据成员不是属于某个对象的,可以通过类名加作用域运算符进行引用。具体格式如下: :;,1静态数据成员的说明方法和初始化, 静态数据成员不是属于某个对象,而是属于整个类的。 静态数据成员不随对象的创建而分配内存空间,它也不随对象被释放而撤销。只有在程序结束时才被系统释放。 静态数据成员只能在类体外

7、被初始化 见书中例6.7。,2静态数据成员的特点,说明静态成员函数格式如下: static (); 引用静态成员函数有如下两种方式: :() 或者 . () 在静态成员函数中可以直接引用其静态成员,而引用非静态成员时需用对象名引用。 见书中例6.8。,6.4.2 静态成员函数,6.5 常成员,常数据成员格式如下: const 常数据成员初始化是通过采用构造函数的成员初始列表来实现的。 构造函数的成员初始化列表的格式如下: (): 见书中例6.9。,6.5.1 常数据成员,常成员函数格式如下: () const 常成员函数可以引用const数据成员,也可以引用非const的数据成员。 见书中例6

8、.10。,6.5.2 常成员函数,6.6 友元函数和友元类,友元函数是说明在类体内的一般函数,它不是这个类中的成员函数,但是它访问该类所有成员。 友元函数说明格式如下: friend (),6.6.1 友元函数,使用友元函数时应注意如下几点。 友元函数前边加friend关键字,说明在类体内。如被定义在类体外,不加类名限定。 友元函数可以访问类中的私有成员和其他成员。 友元函数的作用在于可以提高程序的运行效率。 友元函数在调用上同一般函数。 见书中例6.11。,将一个类作为另一个类的友元,则该类称为友元类。友元类中的所有成员函数都是这个类的友元函数。 说明友元类的形式如下: friend cla

9、ss ;,6.6.2 友元类,使用友元类应注意下述事项。 友元关系是不可逆的。B类是A类的友元类,不等于A类是B类的友元类。 友元关系是不可传递的。B类是A类的友元类,C类是B类的友元类,C类不一定就是A类的友元类。 见书中例6.12。,6.7 类型转换,C+语言编译系统提供内部数据类型的自动隐含转换规则如下。 在执行算术运算时,低类型自动转换为高类型。 在赋值表达式中,赋值运算符右边表达式的类型自动转换为左边变量的类型。,6.7.1 类型的隐含转换, 在函数调用时,将调用函数的实参初始化形参,系统将实参转换为形参类型后,再进行传值。这里的隐含转换通常是低类型转换为高类型。 在函数有返回值时,

10、系统自动将返回的表达式的类型转换为该函数的类型后,再将表达式的值返回给调用函数。 在程序中,出现上述转换时,如果数据精度受损失,系统会报错。,6.7.2 一般数据类型转换为类类型,使用一个参数的构造函数可将某种数据类型转换为该构造函数所属类的类型。 见书中例6.13。,6.7.3 类类型转换为一般数据类型,通过在类中定义类型转换函数可以实现由某种类类型转换为某种指定的数据类型的操作。 类型转换函数定义格式如下: operator () 见书中例6.14。,6.7.3 类类型转换为一般数据类型,通过在类中定义类型转换函数可以实现由某种类类型转换为某种指定的数据类型的操作。 类型转换函数定义格式如下: operator () 见书中例6.14。,作业题和上机练习题,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号