分享
 
 
 

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

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

附录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));

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有