CTypedPtrArray 类

CPtrArray 类或 CObArray类的对象提供安全类型“包装器”。

语法

template<class BASE_CLASS, class TYPE>
class CTypedPtrArray : public BASE_CLASS

参数

BASE_CLASS
类型化指针数组类的基类;必须为数组类(CObArrayCPtrArray)。

TYPE
存储在基类数组中的元素类型。

成员

公共方法

名称 描述
CTypedPtrArray::Add 将新元素添加到数组的末尾。 如有必要,请增大数组
CTypedPtrArray::Append 将一个数组的内容添加到另一个数组的末尾。 如有必要,请增大数组
CTypedPtrArray::Copy 将另一个数组复制到该数组;根据需要扩展该数组。
CTypedPtrArray::ElementAt 在该数组中返回对元素指针的临时引用。
CTypedPtrArray::GetAt 返回给定索引位置处的值。
CTypedPtrArray::InsertAt 在指定索引处插入一个元素(或另一个数组中的所有元素)。
CTypedPtrArray::SetAt 设置给定索引的值;不允许对该数组进行扩展。
CTypedPtrArray::SetAtGrow 设置给定索引的值;根据需要扩展该数组。

公共运算符

“属性” 描述
CTypedPtrArray::operator [ ] 设置或获取位于指定索引处的元素。

备注

使用 CTypedPtrArray 而非 CPtrArrayCObArray 时,C++ 类型检查设备可帮助消除由不匹配的指针类型引起的错误。

此外,如果使用 CObArrayCPtrArray,则 CTypedPtrArray 包装器需要执行大量强制转换。

由于所有 CTypedPtrArray 函数都是内联函数,因此使用此模板不会显著影响代码的大小或速度。

有关使用 CTypedPtrArray 的详细信息,请参阅文章:集合基于模板的类

继承层次结构

BASE_CLASS

CTypedPtrArray

要求

标头: afxtempl.h

CTypedPtrArray::Add

此成员函数调用 BASE_CLASS::Add

INT_PTR Add(TYPE newElement);

参数

TYPE
指定要添加到数组的元素类型的模板参数。

newElement
要添加到此数组的元素。

返回值

所添加的元素的索引。

备注

有关更详细的说明,请参阅 CObArray::Add

CTypedPtrArray::Append

此成员函数调用 BASE_CLASS::Append**。

INT_PTR Append(const CTypedPtrArray<BASE_CLASS, TYPE>& src);

参数

BASE_CLASS
类型化指针数组类的基类;必须为数组类(CObArrayCPtrArray)。

TYPE
存储在基类数组中的元素类型。

src
要追加到数组的元素的源。

返回值

第一个追加的元素的索引。

备注

有关更详细的说明,请参阅 CObArray::Append

CTypedPtrArray::Copy

此成员函数调用 BASE_CLASS::Copy

void Copy(const CTypedPtrArray<BASE_CLASS, TYPE>& src);

参数

BASE_CLASS
类型化指针数组类的基类;必须为数组类(CObArrayCPtrArray)。

TYPE
存储在基类数组中的元素类型。

src
要复制到数组的元素的源。

备注

有关更详细的说明,请参阅 CObArray::Copy

CTypedPtrArray::ElementAt

此内联函数调用 BASE_CLASS::ElementAt

TYPE& ElementAt(INT_PTR nIndex);

参数

TYPE
指定存储在此数组中的元素类型的模板参数。

nIndex
大于等于 0 且小于等于 BASE_CLASS::GetUpperBound 返回的值的整数索引

返回值

对 nIndex 指定位置处的元素的临时引用。 此元素属于模板参数 TYPE 指定的类型

注解

有关更详细的说明,请参阅 CObArray::ElementAt

CTypedPtrArray::GetAt

此内联函数调用 BASE_CLASS::GetAt

TYPE GetAt(INT_PTR nIndex) const;

参数

TYPE
指定存储在数组中的元素类型的模板参数。

nIndex
大于等于 0 且小于等于 BASE_CLASS::GetUpperBound 返回的值的整数索引

返回值

nIndex 指定位置处的元素的副本。 此元素属于模板参数 TYPE 指定的类型

注解

有关更详细的说明,请参阅 CObArray::GetAt

CTypedPtrArray::InsertAt

此成员函数调用 BASE_CLASS::InsertAt

void InsertAt(
    INT_PTR nIndex,
    TYPE newElement,
    INT_PTR nCount = 1);

void InsertAt(
    INT_PTR nStartIndex,
    CTypedPtrArray<BASE_CLASS, TYPE>* pNewArray);

参数

nIndex
可能大于 CObArray::GetUpperBound 返回的值的整数索引。

TYPE
存储在基类数组中的元素类型。

newElement
要放置在此数组中的对象指针。 允许使用值为 NULL 的 newElement

nCount
应插入此元素的次数(默认为 1)。

nStartIndex
可能大于 CObArray::GetUpperBound 返回的值的整数索引。

BASE_CLASS
类型化指针数组类的基类;必须为数组类(CObArrayCPtrArray)。

pNewArray
包含要添加到此数组的元素的另一个数组。

备注

有关更详细的说明,请参阅 CObArray::InsertAt

CTypedPtrArray::operator [ ]

这些内联运算符调用 BASE_CLASS::operator [ ]

TYPE& operator[ ](int_ptr nindex);
TYPE operator[ ](int_ptr nindex) const;

参数

TYPE
指定存储在数组中的元素类型的模板参数。

nIndex
大于等于 0 且小于等于 BASE_CLASS::GetUpperBound 返回的值的整数索引

注解

第一个运算符为不是 const 的数组调用,它可用于赋值语句的右侧 (r-value) 或左侧 (l-value)。 为 const 数组调用的第二个运算符只能在右侧使用。

库的调试版本断言下标(在赋值语句的左侧或右侧)是否超出范围。

CTypedPtrArray::SetAt

此成员函数调用 BASE_CLASS::SetAt

void SetAt(
    INT_PTR nIndex,
    TYPE ptr);

参数

nIndex
大于等于 0 且小于等于 CObArray::GetUpperBound 返回的值的整数索引。

TYPE
存储在基类数组中的元素类型。

ptr
指向要插入到数组的 nIndex 处的元素的指针。 允许 NULL 值。

备注

有关更详细的说明,请参阅 CObArray::SetAt

CTypedPtrArray::SetAtGrow

此成员函数调用 BASE_CLASS::SetAtGrow

void SetAtGrow(
    INT_PTR nIndex,
    TYPE newElement);

参数

nIndex
大于或等于 0 的整数索引。

TYPE
存储在基类数组中的元素类型。

newElement
要添加到此数组的对象指针。 允许 NULL 值

备注

有关更详细的说明,请参阅 CObArray::SetAtGrow

另请参阅

MFC 示例 COLLECT
层次结构图
CPtrArray 类
CObArray 类