第3章 类和对象ppt课件_第1页
第3章 类和对象ppt课件_第2页
第3章 类和对象ppt课件_第3页
第3章 类和对象ppt课件_第4页
第3章 类和对象ppt课件_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 类与对象本章主要内容n类 n对象n构造函数和析构函数 n静态成员 n友元 数据类型数据类型nC语言中内置数据类型示例:n - int 可以对整数有:+,-,*,/,求模操作%.n 可以用sizeof(),来求得其在特定的平台上n 的大小,如4字节.n构成数据类型的两大要素:n - 存放数据对象需要的内存大小n - 可使用得数据对象的操作或方法自定义数组数据类型自定义数组数据类型nC+对数组类型提供了内置支持,但只限于只读写单个元素的机制n需要的功能可能有:n - 把一个数组副赋值给另一个数组;n -对两个数组进行比较;n -取得数组的大小;n -数组内元素的排序,等等类 n从语言角度来

2、说,类是一种新的数据类型,而对象是具有这种类型的变量。类是一种将数据和作用于这些数据上的函数组合在一起的复杂数据类型,是可重用的基本单元。n一个类就是一个用户自定义数据类型。n类是面向对象程序设计的核心,利用它可以实现对象的抽象、数据和操作的封装以及信息的隐蔽。类定义 n类定义一般分为说明部分和实现部分。说明部分是说明该类中的成员,实现部分是对成员函数的定义。 n类定义的一般格式如下 class public:;private: ;说明部分protected: ; 实现部分访问控制 n访问权限有三种类型:n private、public和protected。 n三种访问权限的成员与出现的先后顺

3、序无关,并且允许多次出现,但是一个成员只能具有一种访问属性。 成员函数的实现 n成员函数是类中描述行为的成员,同时也是对封装的数据进行操作的惟一途径。n类定义的格式中,一般在类中说明成员函数原型,在类外进行成员函数的具体实现,是类的实现部分。同时,如果成员函数已经在类中定义,则不需要在类外实现。需要注意的是,在类中定义的成员函数自动成为内联函数。n若在类体外实现,则需要使用作用域运算符“:”,用它来标识某个成员函数是属于哪个类的,其定义格式如下: :() 对象 n对象的定义格式与普通变量相同。定义格式如下: ;n 其中,中可以有一个或多个对象名。当有多个对象名时,用逗号分隔。中还可以是指向对象

4、的指针名或引用名,也可以是对象数组名。类成员的访问 n定义了类及其对象,就可以通过对象来使用其公有成员,从而达到对对象内部属性的访问和修改。n对象对其成员的访问有圆点访问形式和指针访问形式。. - 构造函数和析构函数 n类描述了一类对象的共同特征,而对象是类的特例。每个对象区别于其他对象的地方就是依靠它自身属性,即数据成员的值。对象在定义的时候可以进行数据成员的设置,称为对象的初始化。同样,在对象使用结束时,还可以进行一些相关的清理工作。C+中对象的初始化和清理工作,分别由两个特殊的成员函数来完成,它们就是构造函数和析构函数。构造函数 n构造函数的功能是在定义对象时被编译系统自动调用来创建对象

5、并初始化对象。n其定义格式如下::()构造函数的特点 n构造函数是成员函数,函数体可写在类体内,也可写在类体外。n构造函数的函数名与类名相同,且不指定返回值类型,它有隐含的返回值,该值由编译系统内部使用。n构造函数可以没有参数,也可以有参数,因此可以重载,即可以定义参数不同的多个构造函数。n每个类都必须有一个构造函数。如果类中没有显式定义构造函数,则编译系统自动生成一个缺省形式的构造函数,作为该类的公有成员。n程序中不能直接调用构造函数,在定义对象时编译系统自动调用构造函数。析构函数 n析构函数的功能是在对象的生存期即将结束的时刻,由编译系统自动调用来完成一些清理工作。它的调用完成之后,对象也

6、就消失了,相应的内存空间也被释放。n析构函数也是类的一个公有成员函数,它的名称是由类名前面加“”构成,也不指定返回值类型。和构造函数不同的是,析构函数不能有参数,因此不能重载。n其定义格式如下::()析构函数的特点 n析构函数是成员函数,函数体可写在类体内,也可以写在类体外。n析构函数的函数名与类名相同,并在前面加“”字符,用来与构造函数加以区别。析构函数不指定返回值类型。n析构函数没有参数,因此不能重载。一个类中只能定义一个析构函数。n每个类都必须有一个析构函数。如果类中没有显式定义析构函数,则编译系统自动生成一个缺省形式的析构函数,作为该类的公有成员。n析构函数在对象生存期结束前由编译系统

7、自动调用。 拷贝构造函数n拷贝构造函数是一种特殊的构造函数,它的功能是用一个已知的对象来初始化一个被定义的同类的对象。 n拷贝构造函数的定义格式如下:class class publicpublic: ();); /构造函数构造函数 (const (const & & ); /); /拷贝构造函数拷贝构造函数; :(const (const & & );/);/拷贝构造函数的实现拷贝构造函数的实现 拷贝构造函数的特点 n拷贝构造函数是成员函数,函数体可写在类体内,也可以写在类体外。n拷贝构造函数名与类名相同,并且也不指定返回值类型。n拷贝构造函数只有一个参数,并

8、且是对同类对象的引用。n每个类都必须有一个拷贝构造函数。如果类中没有显式定义拷贝构造函数,则编译系统自动生成一个缺省形式的拷贝构造函数,作为该类的公有成员。n拷贝构造函数在三种情况下由编译系统自动调用。 静态成员 n静态成员是解决同一个类的不同对象之间的数据和函数共享问题。n静态成员是类的所有对象共享的成员,而不是某个对象的成员,它在对象中不占存储空间,是属于整个类的成员。n静态成员分为静态数据成员和静态成员函数。n其定义格式为: static;静态数据成员的初始化 n静态数据成员必须进行初始化。在程序一开始运行时静态数据成员就必须存在,因为在程序运行中要调用,所以静态数据成员不能在任何函数内

9、分配空间和初始化。最好在类的实现部分中完成静态数据成员的初始化。n静态数据成员初始化与一般数据成员初始化不同,其格式如下: :=;静态成员的调用 n调用静态成员时,采用如下格式::友元 n根据封装性,一般将类中的数据成员声明为私有成员,外部可以通过类的公有成员函数对私有成员进行访问。n但有时类体外的一些函数需要直接访问类的数据成员,又不改变其数据成员的访问权限,这时,需要定义友元。友元的作用 n友元提供了不同类或对象的成员函数之间、类的成员函数与普通函数之间进行数据共享的机制。 n友元可以访问类中所有成员,但不是类的成员。n友元虽然不是类的成员,但它是类的朋友,可以直接访问类的所有成员。 友元的定义 n如果友元是普通函数或另一个类的成员函数,称为友元函数;如果友元是一个类,则称为友元类,友元类的所有成员函数都成为友元函数。友元函数和友元类在被访问的类中声明,其格式分别如下:friend ();friend ;this指针 nthis指针是一个特殊的隐含指针,它隐含于每一个类的成员函数中,也就是说,每个成员函数都有一个this指针参数,指向调用该函数的对象。n当一个对象调用成员函数时,编译程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论