C++-翻译(中文).doc_第1页
C++-翻译(中文).doc_第2页
C++-翻译(中文).doc_第3页
C++-翻译(中文).doc_第4页
C++-翻译(中文).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

C+设计基本原理C+被设计成一个用于快速开发程序分析工具的可扩展平台。C+有以下几个特点: 按照惯例,C+中小写字母是指书写的程序,只是从C+程序的摘要数据。C+中的大写字母书写,是指该摘要作者和使用的工具生成所有数据库中取得的。 宏包括单位类型、函数和变量。 信息提取与分离演示:在提取程序和提交的资料应分开处理信息的过程。这消除了对每个C+分析工具需要复制的解析过程,允许C+工具以不同的方式来共享信息。开发了一个类似的命名在Interlisp项目。然而,现在许多C和C+工具今天仍然违背这一基本原则。 周密的概念模型:概念模型的实体关系模型是用来描述在C+的实体,属性和关系。该模型可作为准确的方案数据库内容的高层次规范。 关系数据库:支持重用,抽象出来的C+中的关系数据库的形式存储的信息,使得这方面的资料必须由现有的数据库查询系统进行访问。 增量数据库建设:C+建立和维护一个大型数据库,以及有效的系统方案,因为它允许一个数据库的增量更新。当一个C+源更新,只有那一部分要reabstracted来更新数据库。 这些基本的设计原理为基于C+中编程提供基础,在许多传统的开发工具中,通常的信息提取和合并是在一个单一的工具演示过程中的,不能共享与其他工具的信息优势。 C+程序由C+数据库生成的,它已经有许多新的在C+之上开发的工具。这些被开发的工具使用共同的数据库,但是通过不同的做法。有些工具写成的Awk或ksh脚本调用数据库查询命令,其他人则可以在C+程序中调用一个查询库。其他应用程序已被写入使用查询C+程序的数据库信息。针对C+程序的数据库不同的格式调整以及存在微小变化,使得这些工具可以应用于C+程序。许多新的工具可以在很短的时间内通过共享数据库中的结构良好的信息得到开发。这使得它可以提供C+程序员的良好的编程工具,便于支持更高的编程水平。我们概念中的C+程序数据库包含种类繁多,其中有: 什么是这个类的继承层次结构? 什么是所有成员,这个类继承的成员? 在哪里所有引用到这个类的成员? 哪里是重载函数声明? 激光测距仪本发明涉及一种通过采用激光脉冲通过时间(飞行时间)之间的原理和目标距离的仪器设备测量测距的方法。它简化了测距装置的设计和单位数字可编程延时发生器(DPDG)的执行和利用。测距设备的分辨率可以很容易地通过分级DPDGs串行安排。 现有技术的说明: 激光测距仪是一个测量仪器和目标之间的距离的工具,因此从激光测距装置的信号传输的目标到返回距离的激光信号即为所测距离。时间飞行之间的激光信号发射和接收的信号是有由目标反射,是一种直接测量的距离d的方法。激光信号以光的速度传输,因此,需要一个精确的范围,在距离变化到目标十五厘米对应变化的时间只有一纳秒的差异。在现有技术基础上,也有一些方法用来进行测量值的转换,以获得所需的时间分辨率和计算传播时间。这些方法,可以伸展或转换成另一种是形式,如电压,依靠精确的电子元件数量,增加了电路的复杂性。这些方法的准确性很容易受温度影响。计算方法之间的相位电路较为复杂,需要较长的时间来执行不同电路。一般来说,一个具体的测距方法与装置限制的范围有关。这意味着,只是修改电路的一部分几乎是不可能改变的测量结果的。面向对象和C+C+是目前所使用的众多编程语言中的一种。为什么会有那么多的语言?为什么总会有新的语言不断出现?编程语言可以帮助程序员方便实现从设计到实现。第一个编程语言对基本的机器结构有很大的依赖性。这时程序的细节很笨重。只有硬件设计师了解如何在其他成分之外建立计算机体系,语言设计者同样认识到程序可以在一个高水平的环境编写,因而是程序员可以不必了解机器的细节。为什么有这么多高水平的编程语言?有很多语言可以访问大型数据库,格式化金融报告,控制机器人在工厂工作,处理机件,控制卫星实时模拟核反应堆,预测变化的大气层状况,下棋和绘制电路图。每一个问题都需要不同的数据结构和算法。程序语言作为一种工具帮助我们解决这些问题。然而,并不是一种程序语言可以最好的解决所有问题。新的语言被开发来更好的解决一类特定的问题。其他语言可以用来解决不同的问题领域和多方面的用途。每个程序语言固定一个特定的程序体系或设计程序原理。使用多种多样的语言建立不同的设计方案。这些方案被叫做程序范例,帮助我们思考问题,规范解决。当设计一个小的计算机程序或大的软件系统是,我们要思考问题的解决模式。怎样去设计一个模式?程序范例提供了许多不同的方法去设计和思考软件系统。一个范例可以被认为是一个模式或者一个框架来设计和描述软件结构。这个模式帮助我们去思考和规范解决。我们可以选择一种语言,使用范例独立的完成。当所选择的语言提供的结构和机制符合范例时,就很容易完成。一般来说,几种语言可能属于同一种范例。因此,一种范例可以被看作一种语言的类。一种语言不仅要符合一种范例,而且能够使用多种范例提供的特性和特征。混合语言,如C+,综合了两到三种范例。C+包括了命令和程序范例的特性,例如,其前身C,和面向对象范例。命令范例:命令范例的特性是计算机的抽象模型和巨大的内存存储。这是计算机体系的von Neumann模型。计算命令,由一系列的命令组成,以代码形式存储。命令可以使机器找到解决方法,使用指定命令改变存储,变量读取,算术和逻辑表达式,条件分枝控制执行流。程序范例:它包括了命令范例,还有对概念命令和表达的抽象机制。参数,即存储的一部分,被引进在范例中。还包括重复,选择等特征。许多主流程序还是这种语言。程序范例在程序设计中首次引进了抽象的概念。抽象可以把动作和结果隔离。过程是抽象的表格,完成一些任务或功能。其他部分调用时,只是正确有效的执行,但不清楚过程的执行。程序范例和ADT:数据抽象使一个数据对象的行为和它的描述或执行相分离。用户无法看到数据的基本操作,执行可以方便的更改而不影响程序的运行。当我们设计一个算法时,需要一个特定的数据类型执行算法的操作。如果可以定义变量的数据类型,而不影响到实际数据类型的运行,就可以很容易的制订出算法。通过定义数据的用法和操作,假定可以选择任何一种运行,这种定义就叫做抽象数据类型。抽象数据类型的使用使得算法的设计得到更大的推广,使得我们在算法设计时,注重了算法的全面,而不会拘泥于运行的细节。当算法设计完成时,实际的数据类型被执行。近来,程序语言扩展到支持新的数据类型的定义和提供便利给数据抽象。面向对象的范例:它仍然保留了许多程序范例的特征,过程仍然是计算的主要形式。但是,程序不仅仅是抽象值的运算,在面向对象范例种还有对对象的运算。对象同抽象数据类型很相似,联系着数据和运算。面向对象范例具有三种主要特性,第一种,压缩,其机制是为了实施数据抽象。第二种,继承。继承允许从已存在的对象中创建新的对象。这个新创建的对象是原对象的具体说明。新对象的不同在于只需要提供方法或数据。当一个对象从另一个对象中被创建或取得时,就说新对象继承了它父对象的方法和数据,并增加了一些新的描述和说明。面向对象的第三种特性是多态。多态可以使不同类型的的对象对相同的信息执行相同的操作。例如,我们有一部分对象它们可以执行一类操作,但是只有在运行时我们才知道对象的类型。面向对象语言包含的机制确保了每一类信息传递给正确的对象。压缩,继承和多态被认为是面向对象程序的基本特征,所有的面向对象程序语言必须提供这些特征。一般来说,语言通过不同的途径支持这些特征的实现。Smalltalk, C+, Objective-C, 和 Lisp with CLOS (the Common Lisp Object System)这些程序语言都是面向对象语言的例子,它们都可以提供对压缩,继承和多态的支持。构建一个面向对象的程序需要决定解决问题所需的对象。这些对象被用来构建计算,定义软件系统的操作运行。信息的传递是对象间最基本的相互作用机制。信息(从其他的对象或程序)传递给对象,以便通知对象运行下一个操作。对象需要负责维护它所相关的数据的状态。只有对象本身才可以改变它内部的数据值。对象本身可以完全的调用它的子对象。一个对象的执行是一个循环递归的过程,当定义这个对象和方法的初始值是,可以跳出这个循环递归的过程。这时,这个方法和数据所组成的元素可以使用程序语言所提供的基本的构造函数。学习面向对象范例最重要的一点是如何改变我们思考建造软件体系的思路。系统被认为是由多个单一独立的个体组成,其中每个个体只负责对其自身的操作的运行。每一个对象的设置和运行都是自身所包含的。由于对象常常模仿真实世界的个体的概念,因而这样的一个模型推动了软件方面的设计(以及后来的实行)。设计一个系统使用面向对象的范例,从而使得系统的操作和运行更类似于真实世界中所对应的真实个体。压缩:C+继承了C的发展,并且定义的新的方便的数据类型。一个类就像C的结构,但不同的是同时包括了数据和方法。除此之外,C+还提供了类中各个成员访问权限的不同,以此方便的控制即使是在不同的类,也可以访问类中的成员。重复的调用一个抽象的数据可以对用户隐藏对一个数据对象的操作细节。用户只可以通过一个公共的接口来访问这个对象。一个C+的类既包括共有的部分,又包括私有的部分。公有的部分提供给用户关于这个类的接口,私有的部分只有构造这个类的函数才可以访问。C+提供了关键字来说明类中哪些 成员是不可见的,哪些部分是其公共接口。不可见的成员在其定义的部分标明了关键字private。公共的接口部分标有关键字public。当一个类是私有的类时,意味着只有这个类的函数或友元可以使用它。一个类的定义并不分配内存。当一个数据对象被创建并且具有变量声明时才分配内存。构造函数和析构函数提供了对象的初始化和释放功能。当一个对象被声明时,它的构造函数初始化其在内存的值。当对象离开它所在的范围时,调用析构函数释放对象。我们不可能对用户完全的隐藏操作的细节。C+无法提供一个使所有细节完全排除在基本操作之外的方法,因此一个类的私有部分必须这个类的定义,从而有效的访问这个类的变量,并可以继承。建造一个类可以使它方便的访问它父类的私有成员。C+定义了关键字protected来完成继承的实现。保护成员既可以被类的成员函数访问,也可以被派生类的成员函数访问。和私有成员相同的一点,保护成员不可以被用户程序访问。对象所需要注意的最后一点,信息的重复传递时对象间交流的基本功能。例如一个语句i a2.Size(),我们可以有效的把信息传给a2的对象,以确定组的大小并返回其值。实际上,这里并没有真的传递信息。C+通过调用函数模拟信息的传递。编译器确保对所需要的对象调用正确的函数,因此,在C+中,可以把信息的传递当作函数的调用。当设计了一种方案,一种程序语言就可以被选择执行。可以在设计的过程中找到对象间的继承关系,甚至可以使用传统的,非面向对象的语言设计系统。但是,使用面向对象语言,如C+,由于语言支持对象间的继承关系,从而可以更方便的了解设计执行。C+语言是混合型的语言,它属于多范例的语言。C+可以认为是C语言的扩展的过程语言或面向对象语言。 C+继承:任何面向对象程序语言其最主要的作用就是可以从原有的类中创建新的类,从而可以再次使用代码。继承可以从与原有的类型扩展到派生类型。面向对象设计的一个主要操作就是要确认真实世界的个体以及各个个体之间的联系。当设计一个软件系统时,需要建立一系列的对象,并且需要互相关联的一系列对象。有些类之间可能不是完全的相关。大部分的类之间可以归纳为继承的关系。将一系列的类归为一个类的层次需要明白各个类之间的关系和他们之间的细节。但不是所有的类之间都可以建立继承的关系。C+提供了三种方式的继承:公有继承,私有继承,保护继承。这些不同的方式应用在不同的对象间关系。第一种关系是IS-A关系。这种关系是类型与类型,类与类之间特有的关系。IS-A继承指两个类,其中一个类描述了对对象的说明,对对象的设置说明由另一个类来说明。IS-A的关系是传统的继承关系,也就是派生类型。派生类型是一些基本类型即父类型的专门化,在C+中,超级类型就是基类,派生类型就是派生类。在C+中执行IS-A关系需要使用公有继承。在基类中的公共部分使用公有继承,在派生类中也是公有的部分,在基类中的保护部分使用公有继承,在派生类中也变成保护的部分有时在两个对象之间的关系也许是包含关系,也可以是部分整体之间的关系。不是所有对象它都是其他对象的一个专门说明和继承,可能这些对象有些是其他对象的一部分或是包含在其他的对象中。在C+中使用HAS-A关系可以使用成员或是私有继承。例如,一个堆栈可以被当作一个数组使用。我们可以使用堆栈作为一个数据成员,或者使用私有继承,从数组类中继承堆栈类。可以在两个类之间使用继承创建一个互相包含的关系。私有继承只有在不是接口的部分可以被使用,基类是一个细节的执行。在私有继承的情况下,原来基类中的公有部分和保护部分,在派生类中都变为私有部分。派生类的使用者不可以访问基类中的接口。但是派生类中的成员函数可以自由的访问或调用基类中的公共部分和私有部分。当这样使用基类中的成员时,用户不可以只依靠继承来编写代码。这是一个修改为不同的基类的运行。继承的另一种方式,也是很少使用的一种方式就是保护继承。保护继承也是一种可以使用HAS-A关系的继承。当使用保护继承时,在基类中的公有部分和保护部分,在派生类中就都变为保护部分。当继承是接口的部分时,派生类要使用保护继承,但是不是接口的所有部分都可以被用户使用。一个保护的基类类似于一个私有的基类,不同在于继承的派生类可以知道接口部分。如果可以的话,最好使用数据成员。这时当你必须重复使用基类中的函数时,可以使用其继承。如果你所有的派生类是基类的一个说明构造时,只有使用公有继承,否则,要使用私有继承。当在不必要时使用继承,会使系统更加难以理解。总之,一个类有两个主要的接口:一个是给用户所使用的(公共接口),另一个派生类所使用(公有部分和保护部分的联合)。继承的部分是基本相同的。在基类中的公共接口使用公有继承,在派生类中队用户也是公有接口。在基类中的公共部分和保护部分使用保护继承,在派生类中可以使用成员函数,但并不对派生类的所有用户。最后,当在基类中的公共部分和保护部分使用私有继承,基类可以调用,但用户和派生类不可以使用。C+多态:多态是面向对象程序的三个特性中最重要的部分。多态,和继承一起,对面向对象程序有很大的用途。多态,就是说有多个形式,提供一个基本的软件接口以建立不同类型的对象操作的统一的方式。C+提供了三种类型的多态:虚函数,函数重载和运算符重载。虚函数可以使继承的同层相关的对象用同一种方式操作。当所有的函数传递同样的信息值时,虚函数的机制确保在动态运行时了调用正确的函数。一个类的普通的成员函

温馨提示

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

评论

0/150

提交评论