`
mmdev
  • 浏览: 12951023 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

好书整理系列之-设计模式:可复用面向对象软件的基础 9

阅读更多


附录C 基本类
本附录提供我们在一些模式的C + +示例代码中用到的基本类。我们力求使这些类尽量简
短。这些基本类包括:
• List,对象的顺序列表。
• Iterator,顺序存取聚集对象的接口。
• ListIterator,遍历一张L i s t的I t e r a t o r。
• Point,一个两维点。
• Rect,一个轴对齐的矩形。
在某些编译器中,一些新的C + +标准类型可能还未实现。特别地,如果你的编译器没有定
义b o o l类型,你可以象下面这样手工定义它:
C.1 List
L i s t模板类是一个用来存储一个对象序列的基本容器。L i s t存放元素的值,其元素既可以
是内置类型也可以是类的对象。例如, L i s t < i n t >声明了一个整数序列。但在大多数模式中使
用它来存储对象指针,比如L i s t < G l y p h * >。这样L i s t类就可以用于异质元素列表。
为方便使用, L i s t类也提供了栈形式的操作。这样就可以直接将L i s t用作栈,而无需再定
义新类。


下面较详细地讨论这些操作。
构造、析构、初始化和赋值
List(long size)
初始化列表。参数s i z e提示初始元素数目。
L i s t ( L i s t & )
重载缺省拷贝构造函数,以正确地初始化成员数据。
~L i s t ( )
释放该列表的内部数据结构的存储空间。但它并不释放其元素的数据。设计者不希望用
户继承这个类,因而析构函数不是虚的。
List& operator=(const List&)
实现列表赋值,以正确赋值各成员数据。
访问
这些操作支持对列表元素的基本存取。
long Count() const
返回列表中对象的数目。
Item& Get(long index) const
返回制定下标处的对象。
Item& First() const
返回列表的第一个对象。
Item& Last() const
返回列表的最后一个对象。
bool Includes(const Item&) const
列表是否含有给定元素。本操作要求列表元素类型支持用于比较的= =操作。
增添
void Append(const Item&)
在列表尾部添加元素。
void Prepend(const Item&)
在列表头部插入元素。
删除
void Remove(const Item&)


从列表中删除给定元素。本操作要求列表元素类型支持用于比较的= =操作。
void RemoveLast()
删除最后一个元素。
void RemoveFirst()
删除第一个元素。
void RemoveAll()
删除所有元素。
栈接口
Item& Top() const
返回栈顶元素(将列表视为一个栈)。
void Push(const Item&)
将该元素压入栈。
Item& Pop()
弹出栈顶元素。
C.2 Iterator
I t e r a t o r是定义了一种遍历对象集合的接口的抽象类。
其操作含义为:
virtual void First()
使本I t e r a t o r指向顺序集合中的第一个对象。
virtual void Next()
使本I t e r a t o r指向对象序列的下一个元素。
virtual bool IsDone() const
当序列中不再有未到达的对象时返回真。
virtual Item CurrentItem() const
返回序列中当前位置的对象。
C.3 ListIterator
L i s t I t e r a t o r实现了遍历列表的I t e r a t o r接口。它的构造函数以一个待遍历的列表为参数。
C.4 Point
P o i n t表示两维笛卡儿坐标空间上的一个点。P o i n t支持一些最基本的向量运算。P o i n t的坐
标值类型定义为:
typedef float Coord;
P o i n t的操作含义是自明的。
静态成员Z e r o代表P o i n t ( 0 , 0 )。
C.5 Rect
R e c t代表一个轴对齐的矩形。一个矩形用一个原点和一个范围(长度和宽度)来表示。
其操作含义也是自明的。


静态成员Z e r o等于矩形
Rect(point(0, 0)point(0, 0));


分享到:
评论

相关推荐

    设计模式:可复用面向对象软件的基础--详细书签版

     本书结合设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别...

    设计模式可复用面向对象软件的基础(C++)——强烈推荐

    一本专门介绍设计模式的好书,基于C++的案例,该书深入浅出地介绍了设计模式的概念及应用。

    设计模式可复用面向对象软件的基础

    本书并不是一本介绍面向对象技术或设计的书,目前已有不少好书介绍面向对象技术或设计。本书假设你至少已经比较熟悉一种面向对象编程语言,并且有一定的面向对象设计经验。当我们提及“类型”和“多态”,或“接口”...

    设计模式:可复用面向对象技术

    four of gang 的好书! 设计模式的先祖!

    (经典)设计模式——可复用面向对象软件的基础(pdf)

    本书并不是一本介绍面向对象技术或设计的书,目前已有不少好书介绍面向对象技术或设计。本书假设你至少已经比较熟悉一种面向对象编程语言,并且有一定的面向对象设计经验。当我们提及“类型”和“多态”,或“接口”...

    设计模式.可复用面向对象软件的基础.中文版

    本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别...

    设计模式可复用面向对象软件的基础(中文版)

    本书并不是一本介绍面向对象技术或设计的书,目前已有不少好书介绍面向对象技术或设计。本书假设你至少已经比较熟悉一种面向对象编程语言,并且有一定的面向对象设计经验。当我们提及“类型”和“多态”,或“接口”...

    设计模式-可复用面向对象软件的基础(高清)

    最经典的设计模式书籍,介绍23种设计模式,值得一生收藏的好书

    设计模式,可复用对象基础

    本书并不是一本介绍面向对象技术或设计的书,目前已有不少好书介绍面向对象技术或设计。本书假设你至少已经比较熟悉一种面向对象编程语言,并且有一定的面向对象设计经验。当我们提及“类型”和“多态”,或“接口”...

    敏捷软件开发-原则-模式与实践

    敏捷软件开发-原则-模式与实践 不可不读的好书

    java设计模式(设计实例从面向对象的设计中精选出23个设计模式)

    另外,这也不是一篇高级专题技术论文,而是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从...

    设计模式 GOF 23

    本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用...

    敏捷软件开发:原则、模式与实践

    软件开发的良好书,着重强调了敏捷开发软件的理念。

    深度探索 c++对象模型 中文版

    C++的面向对象的特性。这根本不能叫C++程序。(我想有时间重写一下以前代码也会有很多收获,温故而知新吗)C和C++在编程思想上 是相互矛盾的。这也就是说如果你想学C++,完全可以不学C,只需要一本好书和一个不太笨...

Global site tag (gtag.js) - Google Analytics