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

你可能感兴趣的:(C++,c,C#)