本文解释 MFC 3.0 版及更高版本中类型安全、基于模板的集合类。使用这些模板创建类型安全集合更为方便,并且提供了比使用不基于模板的集合类更高的类型安全。
MFC 预定义了两类基于模板的集合:
- 简单数组、列表和映射类
CArray、CList、CMap
- 类型化指针的数组、列表和映射
CTypedPtrArray、CTypedPtrList、CTypedPtrMap
简单集合类都是从 CObject 类派生的,所以继承了 CObject 的序列化、动态创建以及其他属性。类型指针集合类要求指定派生自的类,该类必须是 MFC 预定义的非模板指针集合之一,如 CPtrList 或 CPtrArray。新的集合类从指定的基类继承,并且新类的成员函数对基类成员使用封装调用以强制类型安全。
有关 C++ 模板的更多信息,请参见 C++ Language Reference 中的模板。
使用简单数组、列表和映射模板
若要使用简单集合模板,需要知道可以在这些集合中存储的数据类型以及集合声明中所使用的参数类型。
简单数组和列表的用法
简单的数组类 CArray 和列表类 CList 采用两个参数:TYPE 和 ARG_TYPE。这些类可以存储任何在 TYPE 参数中指定的数据类型ÿ