毕业设计外文文献翻译---对象的创建和存在时间
《毕业设计外文文献翻译---对象的创建和存在时间》由会员分享,可在线阅读,更多相关《毕业设计外文文献翻译---对象的创建和存在时间(11页珍藏版)》请在毕设资料网上搜索。
1、 毕 业 设 计 (论文 ) 外 文 文 献 翻 译 专业 学生姓名 班级 学号 指导教师 信息工程学院 1 中文译文 对象的创建和存在时间 从技术角度说, OOP(面向对象程序设计)只是涉及抽象的数据类型、继承以及多形性,但另一些问题也可能显得非常重要。本节将就这些问题进行探讨。 最重要的问题之一是对象的创建及破坏方式。对象需要的数据位于哪儿,如何控制对象的 “ 存在时间 ” 呢?针对这个问题,解决的方案是各异其趣的。 C+认为程序的执行效率是最重要的一个问题,所以它允许程序员 做出 选择。为获 得最快的运行速度,存储以及存在时间可在编写程序时决定,只需将对象放置在堆栈(有时也叫自动或定域变
2、量)或者静态存储区域即可。这样便为存储空间的分配和释放提供了一个优先级。某些情况下,这种优先级的控制是非常有价值的。然而,我们同时也牺牲了灵活性,因为在编写程序时,必须知道对象的准确的数量、存在时间、以及类型。如果要解决的是一个较常规的问题,如计算机辅助设计、仓储管理或者空中交通控制,这一方法就显得太局限了。 第二个方法是在一个内存池中动态创建对象,该内存池亦叫 “ 堆 ” 或者 “ 内存堆 ” 。若采用这种方式,除非进入运行期 ,否则根本不知道到底需要多少个对象,也不知道它们的存在时间有多长,以及准确的类型是什么。这些参数都在程序正式运行时才决定的。若需一个新对象,只需在需要它的时候在内存堆
3、里简单地创建它即可。由于存储空间的管理是运行期间动态进行的,所以在内存堆里分配存储空间的时间比在堆栈里创建的时间长得多(在堆栈里创建存储空间一般只需要一个简单的指令,将堆栈指针向下或向下移动即可)。由于动态创建方法使对象本来就倾向于复杂,所以查找存储空间以及释放它所需的额外开销不会为对象的创建造成明显的影响。除此以外,更大的灵活性对于常规编程问 题的解决是至关重要的。 C+允许我们决定是在写程序时创建对象,还是在运行期间创建,这种控制方法更加灵活。大家或许认为既然它如此灵活,那么无论如何都应在内存堆里创建对象,而不是在堆栈中创建。 但还要考虑另外一个问题,亦即对象的 “ 存在时间 ” 或者 “
4、 生存时间 ”( Lifetime)。若在堆栈或者静态存储空间里创建一个对象,编译器会判断对象的持续时间有多长,到时会自动 “ 破坏 ” 或者 “ 清除 ” 它。程序员可用两种方法来破坏一个对象:用程序化的方式决定何时破坏对象,或者利用由运行环境提供的一种 “ 垃圾收集器 ” 特性,自动寻找那些不 再使用的对象,并将其清除。当然,垃圾收集器显得方便得多,但要求所有应用程序都必须容忍垃圾收集器的存在,并能默许随垃圾收集带来的额外开销。但这并不符合 C+语言的设计宗旨,所以未能包括到 C+里。但 Java 确实提供了一个垃圾收集器( Smalltalk 也有这样的设计;尽管 Delphi 默认为没
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 外文 文献 翻译 对象 创建 创立 以及 存在 时间
