资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
面向对象程序设计摘要:C+面向对象语言是当今使用范围最广的面向对象语言之一主要内容包括:类和对象,派生类和继承,多态性,模板,以及I/O流类库。学习好C+语言对我们今后的发展必将产生重大影响。【关键词】: 面向对象程序设计 对象 封装 继承 多态性 C+引言:向对象程序设计是当前主流的程序设计方法。它能有效降低软件的复杂性,极大地改善软件的重要性和可维护性,显著地降低软件的生产才成本,提高软件的质量和开发效率。因此,面向程序设计方法已取代了传统结构化程序设计的地位而成为软件工业界主流的程序设计方法。C+语言是C语言的基础上发展而来的。在C+中不但加入了支持面向对象程序设计的特性,还增加了许多新的特性,则可以把C+看成是“更好的C”。使用C+编写结构化程序也比使用传统的C语言更容易一些。正文:一 面向对象程序设计概述传统的软件开发方法,如面向过程方法和面向数据方法,都只是针对具体问题的功能,不允许用户需求在开发过程中有所改变。显然,由此开发的软件系统在可靠性、可维护性和可重用性上就会存在很大的不足。为了克服传统方法的缺点,人们在实践中创造了接近人们认识过程的面向对象的软件开发方法。面向对象方法包括面向对象分析、面向对象设计和面向对象实现。尽管面向对象方法主要用于应用系统的设计,但面向对象分析作为一种独立的需求分析方法以及其它分析方法的补充,目前正逐渐得到发展。现阶段最常用的是C+。二 面向对象C+概述C+是基于C语言发展的,又冲破C语言局限的面向对象的程序设计语言。它与Java语言都作为当前计算机科学的主流语言,越来越受到用户的欢迎。c+面向对象程序设计是计算机本科专业的一门专业课程,其目的是培养学生了解面向对象程序设计的基本理论和基本概念,主要是面向对象的程序设计思想,掌握面向对象程序设计的基本技巧和方法,重点是培养学生的思维和实际编程能力,培养与计算机应用相关的软件设计、测试、管理及新产品的开发领域高素质应用型人才。 三面向对象程序主要性质和内容1说明一个类 class 类名 body ;再定义一个属于该类的对象。 在C+中,类是支持数据封装的工具,而对象则是数据封装的实现。类可以看作为一种数据类型,则对象视为该类型的变量,其定义一个对象的格式为: 类名 对象名2继承性又分单一继承和多重继承。目的是减少冗余,提高程序的可重用性。子类可用自己的成员,也可用父类,甚至父父类的成员。这是C+中的重点。3为提高程序的可读性,在程序中可适当写一些注释,C+的注释有两种:/和/*/。/*/为多行注释符,以/*打头,*/结尾。 如 /* */则第2、3行语句被注释,系统不予运行。而/称之为行注释。 如 /这里第二行后面为注释内容,但第二行仍运行。 如 /则第二行屏蔽。/*/也可放在一行用,起行注释作用。C+的分隔符号有空格符、逗号、分号、冒号、 等各有不同作用,在具体的程序中再作讨论。分号主要用作语句结束符。4基本数据类型C+所提供的数据类型,在所有的语言中堪称是最丰富的一种,这些数据类型基本上又分成二类:基本类型和构造类型。四种基本类型是:char、int、float、void,并引申出unsigned char、signed char、unsigned int、signed int、long int、short int、double、long double常用的及取值范围(值域)C+中的数据类型除了基本类型之外,还有构造类型。构造类型又包括数组、枚举、结构、联合及指针。 数组的定义方式 int A5;A是数组名,它包括有5个元素,每一个元素均为int,下标属于04;而二维数组: char B23;例如 在某个程序中,定义了二个整型变量:x,y int x,y;它们在该程序地址空间中的位置如下图: 程序地址空间56100 x 100 y 102 px 5000 变量x占用地址单元100,y则占用102,执行赋值语句: x5;yx1;就是把整数5送入起始地址为100的二个连续字节单元中去,语句yx1则先从100单元中取出x的值5,然后加1,最后送入地址为102的y变量中,则y变量的内容为6。一个变量对应于一个地址,按变量的地址访问变量值的方式称之为直接访问。5类与对象是面向对象程序设计的基础,类是某一类对象的抽象。而对象是某一种类的实例(Objected,Class,Example)。int x中int是类,x是对象。例 P.138class tdate public: void setdate(int y,int m,int d) year=y; month=m; day=d; int isleapyear( ) return ((year%4 = = 0&year%100!=0)|(year%400=0)); void print( ) coutyear”.”month”.”dayendl; private: int year,month,day; ;6要编好程序,就要学会合理地划分程序中的各个程序模块。每一个模块在C+中称之为函数。每个函数都可以有属于它的数据和语句集合,并把它们封装在这个函数内。函数有各种表现形态,但都离不开函数调用的实质。要用好函数必须先把握函数调用机制。通过本章的学习讨论,要求掌握函数调用的内部机制。区分函数的定义和说明,理解局部变量、全局变量、静态变量的作用域,以及递归、内联、重载和默认参数的函数。程序通常是非常复杂而冗长的。实际编程中,有些程序需要几万甚至几百万行的代码。在编写一个很大的程序时可以采用一种好的策略,就是把这个大的程序分解成一些相对独立而且便于管理和阅读的小块程序,便于调试和阅读。把相关的语句组织在一起并给它们注明相应的名称,这种形式的组合就称之为函数,也称为过程。下图为main函数用层次式管理方式与被调用函数的关系。一个函数可以被函数调用也可以调用函数。main( )Func1()Func2( )Func3( )Func4( )Func5( ) C+不允许函数定义嵌套,即在函数定义中再定义一个函数,但可嵌套调用。函数又分为系统函数和用户函数。系统函数是软件销售商提供的,对常用的一些函数如三角函数等,使用时直接调用即可。我们在此讨论用户函数,在C+中称之为一般函数。7多态性就是多种表现形式,具体来说,可以用一个对外接口,多个内在实现方法表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。 多态性也分静态多态性和动态多态性两种。静态多态性是指定义在一个类或一个函数中的同名函数,它们根据参数表(类型以及个数)区别语义,并通过静态联编实现,例如,在一个类中定义的不同参数的构造函数。动态多态性是指定义在一个类层次的不同类中的重载函数,它们一般具有相同的函数,因此要根据指针指向的对象所在类来区别语义,它通过动态联编实现。 动态多态是指发出同样的消息被不同类型的对象接收时,有可能导致完全不同的行为。即,在用户不作任何干预的环境下,类的成员函数的行为能根据调用它的对象类型自动作出适应性调整,而且调整是发生在程序运行时。 多态是面向对象程序设计的重要特征之一。是扩展性在“继承”之后的又一重大表现 。 举例子说明一下: #include class A public: virtual void test() coutaaaendl; /运行时的多态性,如果不加virtual就是编译时的多态 /void test() coutaaaendl; /编译时的多态性 ; class B:public A public: void test() coutbbbendl; ; class C:public B public: void test() coutccctest(); 结论:C+是一种语言,仅仅是它的语法、特性、标准类库就已经是一门非常高深的课程,所以在开始学习的时候,必须先要打好基础。学习C+应该由易至难,循序渐进。以前经常有人说学习C+之前应该学习C语言。事实上那不是必须的,C+和C语言虽然有关系,但仍然是两种不同的语言。当然,在学习C+之前学习过其他编程语言是很有好处的。那会使学习C+的速度更快,毕竟很多计算机语言的概念都是相通的。而对于零基础的初学者来说,则是应该静下心来,不要急躁。要成为C+的高手,不是那么容易的,必须要花很大的努力。参考文献:1谭浩强C+面向对象程序设计M北京:清华大学出版社,20062 何希琼几种面向对象分析方法介绍J计算机应用,1994(3)3范跃华,张开兵武器故障诊断专家系统中面向对象知识表示J西安:西安工业大学学报,2008,28(2):1681714尹朝庆,尹皓人工智能与专家系统M北京:中国水力水电出版社,20045 陈新安面向对象的分析(OOA)方法在数据库系统设计中的应用J计算机工程与应用,2000,36(5)
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号