友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
深入浅出MFC第2版(PDF格式)-第86部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
Arrays of user types CTypedPtrMap Maps of user types
我们的设计最高原则就是尽量使用MFC 已有的类别,提高软件IC 的重复使用性。上
图浅色部份是Scribble 范例程序在16 位MFC 中采用的两个类别。深色部份是
Scribble 范例程序在32 位MFC 中采用的两个类别。
468
…………………………………………………………Page 531……………………………………………………………
第8章 Document…View 深入探討
MFC Collection Classes 的选用
第5章末尾我曾经大致提过MFC Collection Classes 。它们分为三种类型,用来管理一大
群对象:
■ Array :数组,有次序性(需依序处理),可动态增减大小,索引值为整数。
■ List :双向串行,有次序性(需依序处理),无索引。串行有头尾,可从头尾
或从串行的任何位置安插元素,速度极快。
■ Map :又称为Dictionary ,其内对象成对存在,一为键值对象(key object ),
一为实值对象(value object )。
下面是其特性整理:
类型 有序 索引 插入元素 搜寻特定元素 复制元素
List Yes No 快 慢 可
Array Yes Yes 慢 慢 可
(利用整数索引值)
Map No Yes 快 快 键值(key )不可复制,
(利用键值) 实值(value )可复制。
MFC Collection classes 所收集的对象中,有两种特别需要说明,一是Ob 一是Ptr :
■ Ob 表示衍生自CObject 的任何对象。MFC 提供CObList、CObArray 两种类别。
■ Ptr 表示对象指针。MFC 提供CPtrList、CPtrArray 两种类别。
当我们考虑使用MFC collection classes 时,除了考虑上述三种类型的特性,还要考虑以
下几点:
■是否使用C++ template (对于type…safe 极有帮助)。
■储存于collection class 之中的元素是否要做文件读写动作(Serialize)。
■储存于collection class 之中的元素是否要有倾印(dump )和错误诊断能力。
469
…………………………………………………………Page 532……………………………………………………………
第篇 深入 MFC 程式設計
下表是对所有collection classes 性质的一份摘要整理(参考自微软的官方手册:
Programming With MFC and Win32 ):
类别 C++ template Serializable Dumpable type…safe
CArray Yes Yes Yes No
CTypedPtrArray Yes Depends Yes Yes
CByteArray No Yes Yes Yes
CDWordArray No Yes Yes Yes
CObArray No Yes Yes No
CPtrArray No No Yes No
CStringArray No Yes Yes Yes
CWordArray No Yes Yes Yes
CUIntArray No No Yes Yes
CList Yes Yes Yes No
CTypedPtrList Yes Depends Yes Yes
CObList No Yes Yes No
CPtrList No No Yes No
CStringList No Yes Yes Yes
CMap Yes Yes Yes No
CTypedPtrMap Yes Depends Yes Yes
CMapPtrToWord No No Yes No
CMapPtrToPtr No No Yes No
CMapStringToOb No Yes Yes No
CMapStringToPtr No No Yes No
CMapStringToString No Yes Yes Yes
CMapWordToOb No Yes Yes No
CMapWordToPtr No No Yes No
若要文件读写,你必须明白调用collection object 的Serialize 函数;若要内容倾印,
你必须明白调用其Dump 函数。不能够使用archive
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!