毕业设计论文外文中英文翻译 下载本文

本科毕业设计(论文)

外文参考文献译文及原文

学 院 计算机学院 专 业 网络工程 年级班别 2008级(3)班 学 号 3108007132 学生姓名 廖杰发 指导教师 黄益民

2012 年 5 月

目录

1 对象的创建和存在时间 .................................................. 1 1.1 对象的创建及破坏方式 .............................................. 1 1.2 内存池中动态创建对象 .............................................. 1 1.3 对象的生命周期 .................................................... 1 1.4 其它内容 .......................................................... 2 1.4.1 集合与继承器 ................................................... 2 1.4.2 单根结构 ....................................................... 4 1.4.3 集合库与方便使用集合 ........................................... 5 2 Object landscapes and lifetimes ............................................ 7 2.1 2.2 2.3 2.4

objects created and destroyed ...................................................................................... 7 objects created dynamically ......................................................................................... 7 Objects’ Lifetime .......................................................................................................... 8 Other section ................................................................................................................ 8

Collections and iterators........................................................................................ 8 The singly rooted hierarchy ................................................................................ 10 Collection libraries and support for easy collection use ...................................... 11

2.4.1 2.4.2 2.4.3

1 对象的创建和存在时间

从技术角度说,OOP(面向对象程序设计)只是涉及抽象的数据类型、继承以及多形性,但另一些问题也可能显得非常重要。本节将就这些问题进行探讨。 1.1 对象的创建及破坏方式

对象需要的数据位于哪儿,如何控制对象的“存在时间”呢?针对这个问题,解决的方案是各异其趣的。C++认为程序的执行效率是最重要的一个问题,所以它允许程序员作出选择。为获得最快的运行速度,存储以及存在时间可在编写程序时决定,只需将对象放置在堆栈(有时也叫作自动或定域变量)或者静态存储区域即可。这样便为存储空间的分配和释放提供了一个优先级。某些情况下,这种优先级的控制是非常有价值的。然而,我们同时也牺牲了灵活性,因为在编写程序时,必须知道对象的准确的数量、存在时间、以及类型。如果要解决的是一个较常规的问题,如计算机辅助设计、仓储管理或者空中交通控制,这一方法就显得太局限了。 1.2 内存池中动态创建对象

第二个方法是在一个内存池中动态创建对象,该内存池亦叫“堆”或者“内存堆”。若采用这种方式,除非进入运行期,否则根本不知道到底需要多少个对象,也不知道它们的存在时间有多长,以及准确的类型是什么。这些参数都在程序正式运行时才决定的。若需一个新对象,只需在需要它的时候在内存堆里简单地创建它即可。由于存储空间的管理是运行期间动态进行的,所以在内存堆里分配存储空间的时间比在堆栈里创建的时间长得多(在堆栈里创建存储空间一般只需要一个简单的指令,将堆栈指针向下或向下移动即可)。由于动态创建方法使对象本来就倾向于复杂,所以查找存储空间以及释放它所需的额外开销不会为对象的创建造成明显的影响。除此以外,更大的灵活性对于常规编程问题的解决是至关重要的。

C++允许我们决定是在写程序时创建对象,还是在运行期间创建,这种控制方法更加灵活。大家或许认为既然它如此灵活,那么无论如何都应在内存堆里创建对象,而不是在堆栈中创建。

1.3 对象的生命周期

但还要考虑另外一个问题,亦即对象的“存在时间”或者“生存时间”

1