﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-静观己心，厚积薄发-文章分类-STL</title><link>http://www.cppblog.com/enjoylife/category/17153.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 26 Jun 2011 11:42:34 GMT</lastBuildDate><pubDate>Sun, 26 Jun 2011 11:42:34 GMT</pubDate><ttl>60</ttl><item><title>C++Primer之基于对象的数组设计</title><link>http://www.cppblog.com/enjoylife/articles/149185.html</link><dc:creator>enjoylife</dc:creator><author>enjoylife</author><pubDate>Wed, 22 Jun 2011 07:41:00 GMT</pubDate><guid>http://www.cppblog.com/enjoylife/articles/149185.html</guid><wfw:comment>http://www.cppblog.com/enjoylife/comments/149185.html</wfw:comment><comments>http://www.cppblog.com/enjoylife/articles/149185.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/enjoylife/comments/commentRss/149185.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enjoylife/services/trackbacks/149185.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 基于对象是从面向过程向面向对象的过渡。我写这篇小文的目的就是想尽可能多地丰富数组对象的功能。书中提到应该有的功能，原文如下：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、数组类的实现中有内置的自我意识。首先，它知道自己的大小。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、数组类支持数组之间的赋值、以及两个数组之间的相等和不相等的比较操作。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、数组类应该支持对其所含的只进行下列查询操作：数组中最小值是什么？最大值是什么？某个特殊的值是否在数组中？如果存在，它的第一个位置的索引是什么？<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、数组类支持自排序。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 除了支持数组操作，还必须支持数组本身的机制，包括：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5、能够指定长度，以此来创建数组（这个值无需在编译时刻知道）。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6、能够用一组值初始化数组。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7、能够通过索引来访问数组中的单个元素。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8、能够截获并指出错误的索引值。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 而实际上，在开发过程中，数组的功能远不止于此。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、能够扩展，包括水平和垂直扩展两方面。水平方向，自排序的关键字可能不止一个元素，需要多个成员才能共同确定；垂直方面，数组的成员可能是另一个数组类型的对象。这两种扩展正是我们认识世界描述世界的基本方式。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、能够文档化。把扩展后的庞大数组存在数据库中，在需要的时候，再从数据库中取出。如果数组成员指向某个动态库文件中的相应的函数，则库文件完全可以由数据库统一管理，由代码选择调用。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、能够动态增删成员。为了使数组对象能够适应开发，随时有可能根据当前需要，动态增删成员。增是为了实现描述和处理，删是为了节约消耗。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、能够查询对数组的操作记录和回溯。这有点像数据库的操作，但是对一个庞大的数组对象，显然也是需要的。不过这一点可以在文档化时解决。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5、能够查找符合条件而非单单是索引的数组元素。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6、可变长。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上就是笔者当前想出来可能需要的功能。<img src ="http://www.cppblog.com/enjoylife/aggbug/149185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enjoylife/" target="_blank">enjoylife</a> 2011-06-22 15:41 <a href="http://www.cppblog.com/enjoylife/articles/149185.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>