`

2.3 基于对象的设计

阅读更多
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

在本节中,我们将使用C++的类机制来设计和实现一个数组抽象,我们最初的实现只支

持一个整型数组,以后我们将用模板机制对这种抽象进行扩展,使其能够支持无限数目的数据类型。

第一步,我们需要决定数组应该提供哪些操作,尽管我们希望能提供所有的操作,但是,我们却不能一次提供所有的功能。下面是第一步所支持操作的集合

1.数组类的实现中有内置的自我意识,首先它知道自己的大小

2.数组类支持数组之间的赋值以及两个数组之间的相等和不相等的比较操作

3.数组类应该支持对其所含的值进行下列查询:操作数组中最小值是什么;最大值是什么;某个特殊的值是否在数组中;如果存在,它占的第一个位置的索引是什么

4.数组类支持自排序,为了便于讨论,假定存在一群用户,他们认为数组支持排序的功能很重要,而另外一些人对此却不以为然,除了支持数组操作还必须支持数组本身的机制包括:

5.能够指定长度,以此来创建数组,这个值无需在编译时刻知道

6.能够用一组值初始化数组

7.能够通过一个索引来访问数组中的单个元素,为便于讨论假设用户强烈要求用数组下标操作符来实现这项功能

8.能够截获并指出错误的索引值,假设我们认为这很有必要,所以没有询问用户的想法我们认为这是一个设计良好的数组所必须实现的

分享到:
评论

相关推荐

    深入浅出面向对象分析与设计.pdf

    接着,在面向对象设计阶段,我们可以进一步细化这些对象之间的关系,比如用户和书籍之间可能存在借阅关系,管理员则负责管理用户和书籍。 通过这样的分析与设计过程,不仅能够帮助我们更好地理解系统的需求,还能...

    CoDeSys 2.3 中文教程.pdf

    它基于IEC 61131-3标准,提供了丰富的编程语言和工具,适用于自动化领域的工程师进行设备控制程序的设计和开发。本教程旨在全面介绍CoDeSys 2.3的使用方法,帮助用户掌握其核心功能,包括但不限于工程构建、编程、...

    CoDeSys 2.3 中文教程

    它支持多种国际标准,如IEC 61131-3,适用于各种工业自动化领域的控制程序设计。CoDeSys 2.3作为其早期版本之一,提供了丰富的编程语言选择和强大的工程管理功能。 1.2 CoDeSys 功能总览 CoDeSys 2.3提供了全面的...

    安卓2.3系统可用的java模拟器

    这使得用户可以在没有实际安卓2.3设备的情况下,测试和运行基于Java ME(Java Micro Edition)的应用程序。Java ME是Java平台的一个分支,主要用于移动设备和嵌入式设备,尤其在早期智能手机中广泛应用。 描述中的...

    CoDeSys2.3中文教程

    CoDeSys(Controlled Development System 的缩写)是一款专为可编程逻辑控制器(PLC)设计的集成开发环境(IDE)。它支持多种编程语言,包括梯形图(Ladder Diagram)、功能块图(Function Block Diagram)、结构化...

    基于嵌入式系统的电动汽车交流充电桩设计.pdf

    基于嵌入式系统的电动汽车交流充电桩设计 本文设计了一种基于嵌入式系统的电动汽车交流充电桩,旨在提供一个稳定、安全、便捷的电能补给解决方案。该设计基于 Cortex-M3 微处理器和μC/OS-II 实时操作系统,实现了...

    json-lib-2.3-jdk15基础jar包合辑

    `json-lib-2.3-jdk15`是JSON库的一个特定版本,专为JDK 1.5设计,以确保与该版本的Java环境兼容。 ### JSON Lib简介 JSON Lib是一个Java库,它提供了将Java对象转换为JSON格式,以及将JSON文本解析回等效Java对象的...

    基于设计模式构建数据访问中间件

    ### 基于设计模式构建数据访问中间件 #### 一、引言 随着软件系统的日益复杂化,中间件技术成为提升开发效率、降低维护成本的关键手段之一。尤其是在处理数据访问方面,有效的中间件能够极大地简化开发流程,提高...

    流程图软件设计报告面向对象设计.doc

    面向对象设计是一种基于对象的设计方法,它将软件系统看作是一组对象的集合,每个对象都有其自己的属性和方法。这种设计方法可以使软件系统更加模块化、灵活和可维护。 1. 题目简述 流程图软件设计报告的主要目的...

    Android2.3 3D系统图库源码

    它基于OpenGL ES(Embedded Systems Profile),这是一个用于嵌入式系统的图形库,专门针对移动设备优化,用于处理复杂的3D图形渲染。OpenGL ES在Android平台上广泛应用于游戏开发和高级图形应用。 源码分析: 1. *...

    struts2.3.16.3

    Struts2是基于Action和拦截器的模型,它的核心是通过配置文件定义Action与视图的映射关系,以及Action之间的跳转规则。在Struts2.3.16.3这个版本中,可能包含了对之前版本的bug修复、性能优化以及新特性的引入,旨在...

    struts2.3核心jar包

    Struts2.3是Apache软件基金会旗下的一个开源MVC框架,它是基于Model-View-Controller(模型-视图-控制器)设计模式的Java Web应用程序框架。这个核心jar包是Struts2框架的基础组件,包含了运行Struts2应用程序所需的...

    Struts2.3.1.2源码

    9. **模型驱动(ModelDriven)**: 这是一种Action设计模式,允许直接将Action与Model对象绑定,简化了数据处理。 10. **主题和皮肤**: Struts2支持主题和皮肤的概念,允许自定义界面样式,提高用户体验。 深入研究...

    sdcms时代网站信息管理系统 v2.3 企业版-ASP源码.zip

    `sdcms`很可能是一个基于ASP技术开发的网站内容管理系统,专为企业级应用设计。版本号`v2.3`表明这是一个经过多次迭代和优化的产品,通常意味着更稳定和丰富的功能。 内容管理系统(CMS)是一种用于创建、编辑和...

    struts框架-2.3.16.3

    这个框架主要用于构建基于MVC(Model-View-Controller)模式的Web应用程序,极大地提升了开发效率和代码的可维护性。下面将详细阐述Struts框架的核心特性、MVC模式以及它在Java开发中的应用。 **一、Struts框架核心...

    基于相似设计法的离心泵叶轮计算机辅助设计

    ##### 2.3 相似设计法的修正 在实际应用中,为了提高设计精度,还需要对相似设计法进行必要的修正,主要包括: 1. **尺寸效应修正**:考虑尺寸变化带来的流体动力学特性的改变。 2. **比转数修正**:当目标泵与...

    struts-2.3.15.1 源码

    Struts 2.3.15.1 是一个流行的开源Java Web框架的版本,它基于MVC(Model-View-Controller)设计模式,用于构建高效、可扩展且易于维护的企业级应用程序。该框架由Apache软件基金会开发并维护,是Struts 1的升级版,...

    struts-2.3.15.3源码

    Struts 2.3.15.3 是一个基于 MVC(Model-View-Controller)设计模式的Java Web应用程序框架,由Apache软件基金会开发并维护。它在Java社区中广泛使用,为开发人员提供了构建可扩展、高效且易于维护的Web应用的工具。...

    毕业设计:基于vue+springboot高校学生党员发展管理系统(源码 + 数据库 + 说明文档)

    毕业设计:基于vue+springboot高校学生党员发展管理系统(源码 + 数据库 + 说明文档) 2 系统开发工具介绍 3 2.1 Springboot 3 2.2 VUE框架 3 2.3 Mysql数据库 3 3 可行性分析 4 3.1 技术的可行性 4 3.2 经济的可行...

Global site tag (gtag.js) - Google Analytics