您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 北方工业大学C++面向对象期末复习题(缩印版)
面向对象抽象方法的特点:模块性,封装性,多态性,灵活性,易维护性,局部存储与分布处理,代码共享,面向对象程序设计与大型程序设计关系:大型程序是根据待解决问题的复杂度来判定。大型程序的实现要求:a正确性;b易维护性;c可读性;d可重用性。软件系统设计=大型程序设计+小型系统设计前者解决模块界面复杂,后者控制模块内部的复杂面向对象的设计方法软件系统设计=面向对象设计+面向对象程序设计面向对象语言:SmallTalk,C++,Object-C,Eiffel,Ctalk,,POOL,Fooplog,ADA,java面向对象设计方法与其它设计方法的比较:(1)横向比较:a函数程序设计将计算过程看作函数作用过程;b逻辑程序设计将计算过程看作推演过程;c面向对象程序设计将计算过程看作分类加状态变换的过程(2)纵向比较a和结构化程序设计比较。结构化程序设计强调功能抽象和模块性,将解决问题的过程看作是一个处理过程;而面向对象程序设计综合了功能抽象和数据抽象,将解决问题的过程看作是一个分类演绎过程。a模块与对象:b过程调用与消息传递:c类型与类:d静态连接与动态连接结构化程序设计特点:优点:与非结构化程序相比,结构化程序在调试、可读性和可维护性等方面都有很大的改进。缺点:代码重用性不高:以过程为中心设计新系统,除了一些标准函数,大部分代码都必须重新编写。面向对象的优点:1程序设计过程更自然、更直观2数据具有更强的稳定性3内部封装外部提供接口4软件开发更有效率对象:对象就是我们认识世界的基本单元,它可以是人,也可以是物,还可以是一件事。整个世界就是形形色色的对象组成。程序=对象+消息消息:消息是指一个对象要求另一个对象执行某个功能操作的规格的说明,通过消息传递才能完成对象之间的相互请求或相互协作。封装:封装是隐藏了抽象的内部实现细节的结果。封装是将数据抽象的外部接口与内部的实现细节清楚地分离开。协议:由一个对象能够接受并且愿意接受的所有消息构成的对外接口。其它对象只能向该对象发协议中所提供的消息。类:类是对一组具有共同的属性特征和行为特征的对象的抽象。面向对象中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是是说,类是对具有相同数据结构和相同操作的一类对象的描述。类和对象是抽象和具体的关系,类是对多个对象进行综合抽象的结果,对象又是类的个体实物,一个对象是类的一个实例。继承:是一种现实世界对象之间独特的关系,它使得某类对象可以继承另外一类对象的特征和能力。也就是说一类(派生类、子类)对象具有另一类(基类、父类)对象的性质(数据和操作)。在面向对象中,继承所表达的是对象类之间相关的关系,这种关系使得某类对象可以继承另外一类对象的特征和能力。实例:任何单个对象都是某个类的实例。一个类的所有实例都采用同样的方法处理消息,但每个实例又有自己的私有存储单元。类和实例的关系:抽象和具体的关系.a类的所有实例能响应的消息模式相同,且采用同样的方法完成消息所要求的操作b类的所有实例具有相同的数据结构,且采用相同的名字来引用实例是类的具体化,类是某些有相同点事物的统括类和对象是抽象和具体的关系,类是对多个对象进行综合抽象的结果,对象又是类的个体实物,一个对象是类的一个实例继承:在面向对象中,继承所表达的是对象类之间相关的关系,这种关系使得某类对象可以继承另外一类对象的特征和能力按继承源:单继承指每个派生类只直接继承了一个基类的特征多继承指多个基类派生出一个派生类的继承关系,多继承的派生类直接继承了不止一个基类的特征。按继承内容:取代继承,包含继承,受限继承,特化继承继承方式:public,proteced,private对象间的关系:创建关系,聚合关系,通讯关系,实例化关系多态:多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。多态即一名多用,也即同一消息可以根据发送消息对象的不同采用多种不同的行为方式。作用域:通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少名字冲突语景:作用域是针对语言中的一个符号(如变量)或一个程序段(如函数)的可访问性而言的;深拷贝:不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的;深拷贝是得到一个对象的副本的操作;浅拷贝:只复制对象的基本类型,对象类型,仍属于原来的引用;浅拷贝是得到一个对象的指针的操作强类型,意味着必须事先声明变量,并且该变量只可用于表示一种类型的数据(cc#java)。弱类型,即一个变量不必声明其类型,一个被用于表示字符串的变量在后面的程序中也可用来表示数字(VBScriptphpjavascript)面向对象的任务是:了解问题域内的相关对象及对象间的关系和作用,然后构成问题域的对象模型,尽量使模型真实反映处所要解决问题的实质面向对象的基础是:模拟技术和面向对象技术,从模拟技术中吸取了属性、关系等对象概念,从面向对象技术中吸取了封装、分类结构等概念。a在分析和说明整体框架中贯穿结构化方法,如对象和属性,整体和部分,类和成员等.b用消息进行用户和系统之间、系统中对象之间的通讯制和协议称为部件对象模型面向对象涉及方法:Booch方法,Jocobson方法,Rambaugh方法,Coad和Yourdon方法优势:集中相关数据和功能来直接模拟问题世界中的对象,并且开发的各个阶段都围绕对象范型进行。OLE:ObjectLinkingandEmbedding,对象连接与嵌入,简称OLE技术。OLE不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为部件对象模型。ActiveX:.是组件(或对象)打包,别人编程功能.以便可以重用Web页或其他程序中插入。由一组开发和实现Internet网上应用程序的技术或部件构成,ActiveX的核心技术也是OLE。它是OLE技术在Internet网上的一个扩展是组件(或对象)打包,别人编程功能.以便可以重用Web页或其他程序中插入。COM:COM是ComponentObjectModel(组件对象模型)的缩写。COM组件是以WIN32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行代码组。是一个定义组件的标准,它在最基本的层次定义组件是什么,如何识别它们,如何定位它们,如何装入它们,如何访问它们以及如何与它们通信。GUID:GloballyUniqueIdentifier(全球唯一标识符)GUID(全球唯一标识)是微软使用的一个术语,由一个特定的算法,给某一个实体,如Word文档,创建一个唯一的标识,GUID值就是这个唯一的标识码。GUID广泛应用于微软的产品中,用于识别接口、复制品、记录以及其他对象。不同类型的对象对应不同的GUID值。例如,一个微软Access数据库使用的是16字节域为复制品创建一个唯一标识。设计模式:一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。四个要素:模式名称,问题,解决方案,效果单例模式(Singleton):就是只有一个实例,作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。三个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例函数重载是指同一个函数名可以对应着多个函数的实现,可以给函数名add()定义多个函数实现,该函数的功能是求和,即求两个操作数的和。其中,一个函数实现是求两个int型数之和,另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。函数重载在类和对象的应用尤其重要。函数的覆盖:覆盖是指派生类中存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体(花括号中的部分)不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本,这种机制就叫做覆盖成员函数被重载的特征有:1)相同的范围(在同一个类中);2)函数名字相同;3)参数不同;4)virtual关键字可有可无。覆盖的特征有:1)不同的范围(分别位于派生类与基类);2)函数名字相同;3)参数相同;4)基类函数必须有virtual关键字。重载是在相同名字空间作用域下,而覆盖则是在不同的名字空间作用域下友元:一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。运算符重载:就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型友元函数:一个被赋予访问一个类非public成员权限的非成员函数,它在没有打破封装情况下改善接口。在运算符重载时比较有用(特别时两变元运算符)。重载运算符的名字:只有C++预定义的运算符集中的运算符才能重载。但有几个特例,而且对于内部类型的操作符它们的意义不能改变。不能重载的运算符:.、.*、?:、::、sizeof、typeid名字空间:就是一个限定符号使用的区域,如果做了好几个同样名字的类,就放在不同的namespace异常:异常是一种程序定义的错误,它对程序的逻辑错误进行设防,对运行异常加以控制。初始化列表:用来初始化成员变量的。有些变量必须在构造函数执行之前初始化,比如父类的构造函数中需要的参数,所以就需要一个初始化成员列表用来在构造函数执行前初始化那些必须提前初始化做法。三大法则:如果一个类需要一个析构函数,或者一个拷贝构造函数,或者一个赋值运算符,那么它就三个都需要。合适继承:当派生类的成员函数说明和积累中对性的成员函数相比,前者相对后者要求不多并且承诺不少是,我们就可以得到合适的继承和可替代行为。合适继承课提供充分的可替代性和可扩充性。公有继承:意味着“isakind-of”的关系,简称isa。ClassD:publicB,这就是告诉大家每个类型为D的对象也是一个类型为B的对象,繁殖不亦然。也就是说“B对象排的上用场的任何地方,D对象也可以派上用场”。接口继承:派生类对象继承基类中的方法定义,而对象本身实现这些方法。在COM中,继承指的是接口继承。实现继承:派生类对象直接继承基类中的函数的实现。模版:模版是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性,使用模版可以大幅度地提高程序设计的效率抽象基类:有时基类只表达一些抽象的概念,在这种基类定义的某些函数没有实际的意义,但它又要为其派生类提供一个公共接口,我们可以把这些函数声明为纯虚函数。而这种基类称为抽象基类
本文标题:北方工业大学C++面向对象期末复习题(缩印版)
链接地址:https://www.777doc.com/doc-2624285 .html