面向对象概述教学.ppt
《面向对象概述教学.ppt》由会员分享,可在线阅读,更多相关《面向对象概述教学.ppt(49页珍藏版)》请在三一办公上搜索。
1、第十四-十七章C+面向对象概述,主要内容,面向对象程序设计基础继承性与派生类多态性与虚函数Visual C+6.0应用程序举例,一、面向对象程序设计基础,一、面向对象程序设计基础,C+是C的超集C+不仅仅是一种面向对象的程序设计语言,而且也可以开发面向过程的程序。介绍:类和对象的定义,如何使用对象解决实际问题,1.类和对象,类和对象的引入,使C+真正成为支持面向对象程序设计的语言。类就像蓝图对象是类的具体实例对象最终要通过类实例化!C+程序中的重点是类而不是函数。类是程序员定义类型。每个类包含数据和操作数据的一组函数。类的数据部分称为数据成员(data member),类的函数部分称为方法(m
2、ethod,有的时候也称为成员函数)。先声明类,再由类生成其对象。类是建立对象的模板,对象则是类的一个实例。,2.从结构体到类,C的结构体中可以包含不同的数据类型。在C语言中,数据和操作是分开的!C+语言把结构体进行扩充含有不同的数据类型含有函数类是一种封装了数据和对数据进行操作的自定义的数据类型。,3.类的定义形式,class 类名private:私有成员public:公有成员protected:保护成员;,4.对象的定义,对象是类的实例,对象的定义有下面两种情况:声明类时直接定义对象在声明类的右括号“”后直接列出对象名,并且可以定义多个对象。对象之间用“,”隔开,并且在最后一个对象的后边添
3、加一个“;”声明类之后再定义对象定义形式与一般变量定义一样。其基本形式为:类名 对象;,5.对象的使用,对象的定义完成以后就可以在程序中使用该对象。其类型为公有(public),在类的外部都可以通过对象进行访问。访问的形式如下:对象名.数据成员对象名.函数成员(实参列表)注意:对于类的包含成员和私有成员,类的对象并不能直接访问。因此一般情况下都会 利用一定的接口对类的包含成员和私有成员进行访问。参看书上示例14.1、14.2,6.对象的初始化、构造函数和析构函数,对象也被称为类变量。作为变量,对象可以为其数据成员赋初值。对象的初始化有多种不同的方式。如果一个类只有公共数据成员,那么其对象的初始
4、化与一般变量、结构变量或数组的初始化没有什么区别,在生成对象后设置其数值。在C+中,对象中数据成员的初始化最常用的方法是在构造函数中完成。,7.构造函数,构造函数是一种特殊的成员函数,是与类名同名的成员函数。构造函数在每次生成对象(实例化,使用new关键字)时自动调用,进行一些初始化工作。构造函数可以重载,提供初始化对象的不同方法。,8.构造函数性质,构造函数和类的名字相同。构造函数不具有返回值。定义对象时,系统根据提供的参数自动调用构造函数。构造函数是公有函数,但它不可以被显式调用。,9.程序讲解,示例14.3示例14.4程序中如果定义了构造函数,无论它是否带有参数,系统不会再添加构造函数。
5、因此,如果此时的构造函数带有参数,并且没有指定默认值,那么在创建对象时必须指定参数。,10.析构函数,析构函数也是一种特殊的成员函数,它执行和构造函数相反的工作。析构的特殊性质:析构函数名称与类名相同,但前面加一个“”。一个类中只有一个析构函数,并且该函数不带任何参数。当撤销对象时编译系统自动调用析构函数。若程序员没有定义析构函数,编译系统会生成析构函数。,11.构造函数和析构函数的调用机制,构造函数和析构函数都是自动调用的。构造函数因为可以重载,可以有多个,通过参数的不同而确定调用哪一个;而析构函数只有一个。构造函数和析构函数的调用次序取决于执行过程进入和离开实例化对象范围的顺序。当有多个对
6、象被嵌套使用的时候,一般来说,析构函数的调用次序与构造函数相反。,12.类的包含和子对象的初始化,一个类的对象可以是另一个类的成员,称为类的包含(有时也称为复合),作为成员的对象称为子对象。例如:class A class BA a;/子对象 public;其中,类A的对象a是B的一个成员,对象a称为B的成员对象或子对象,类B和类A形成包含关系。,13.对象的使用,类是一种数据类型,是对象类型,对象是一种变量,是类变量。各种类型变量的使用方法同样适用于对象,对象指针对象数组对象作为函数的参数,14.对象的作用域与生命周期,按照作用域和生命周期,可将对象分为如下三类:全局对象作用域最大,有文件级
7、和程序级作用域;生命期最长。局部对象函数的形参以及函数内部声明的对象都是局部对象。局部对象的作用域最小,生命周期是函数的执行过程。静态对象C+使用static声明静态变量。静态对象的作用域和生命期介于全局对象和局部对象之间。其作用域为块级、函数级或文件级。,15.静态成员,静态成员的提出是为了解决数据共享的问题。静态数据成员的使用方法:静态数据成员在定义或说明时前面加关键字static。静态数据成员初始化的格式如下::=,16.静态数据成员的应用,#includeclass Myclasspublic:Myclass(int a,int b,int c);void GetNumber();vo
8、id GetSum();private:int A,B,C;static int Sum;int Myclass:Sum=0;Myclass:Myclass(int a,int b,int c)A=a;B=b;C=c;Sum+=A+B+C;,void Myclass:GetNumber()coutNumber=A,B,Cendl;void Myclass:GetSum()coutSum=Sumendl;void main()Myclass M(3,7,10),N(14,9,11);M.GetNumber();N.GetNumber();M.GetSum();N.GetSum();,17.友元,
9、友元:需要在类的外部访问类的私有成员。类的友元函数在类范围之外定义,但有权访问类私有(private)成员。函数或整个类都可以声明为另一个类的友元。,18.友元的应用,友元函数:在类的定义中声明友元函数时,需要在函数名前面加上friend。友元函数可以定义在类的内部,也可以在类的外部定义。友元成员一个类的成员函数也可以作为另一个类的友元。这样的函数不仅可以访问本类的所有成员,还可以访问其友元类的所有成员。友元类 在类的声明中加入语句friend类名。例如:要将类ClassB声明为ClassA的友元,在ClassA的定义中应如下声明:friend class ClassB;,二、继承性与派生类,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 概述 教学

链接地址:https://www.31ppt.com/p-6435956.html