CTypedPtrArray 类
为 CPtrArray
类或 CObArray
类的对象提供安全类型“包装器”。
语法
template<class BASE_CLASS, class TYPE>
class CTypedPtrArray : public BASE_CLASS
参数
BASE_CLASS
类型化指针数组类的基类;必须为数组类(CObArray
或 CPtrArray
)。
TYPE
存储在基类数组中的元素类型。
成员
公共方法
名称 | 描述 |
---|---|
CTypedPtrArray::Add | 将新元素添加到数组的末尾。 如有必要,请增大数组 |
CTypedPtrArray::Append | 将一个数组的内容添加到另一个数组的末尾。 如有必要,请增大数组 |
CTypedPtrArray::Copy | 将另一个数组复制到该数组;根据需要扩展该数组。 |
CTypedPtrArray::ElementAt | 在该数组中返回对元素指针的临时引用。 |
CTypedPtrArray::GetAt | 返回给定索引位置处的值。 |
CTypedPtrArray::InsertAt | 在指定索引处插入一个元素(或另一个数组中的所有元素)。 |
CTypedPtrArray::SetAt | 设置给定索引的值;不允许对该数组进行扩展。 |
CTypedPtrArray::SetAtGrow | 设置给定索引的值;根据需要扩展该数组。 |
公共运算符
“属性” | 描述 |
---|---|
CTypedPtrArray::operator [ ] | 设置或获取位于指定索引处的元素。 |
备注
使用 CTypedPtrArray
而非 CPtrArray
或 CObArray
时,C++ 类型检查设备可帮助消除由不匹配的指针类型引起的错误。
此外,如果使用 CObArray
或 CPtrArray
,则 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
类型化指针数组类的基类;必须为数组类(CObArray 或 CPtrArray)。
TYPE
存储在基类数组中的元素类型。
src
要追加到数组的元素的源。
返回值
第一个追加的元素的索引。
备注
有关更详细的说明,请参阅 CObArray::Append。
CTypedPtrArray::Copy
此成员函数调用 BASE_CLASS
::Copy。
void Copy(const CTypedPtrArray<BASE_CLASS, TYPE>& src);
参数
BASE_CLASS
类型化指针数组类的基类;必须为数组类(CObArray 或 CPtrArray)。
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
类型化指针数组类的基类;必须为数组类(CObArray 或 CPtrArray)。
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。