CTypedPtrArray Class
Provides a type-safe "wrapper" for objects of class CPtrArray
or CObArray
.
Syntax
template<class BASE_CLASS, class TYPE>
class CTypedPtrArray : public BASE_CLASS
Parameters
BASE_CLASS
Base class of the typed pointer array class; must be an array class ( CObArray
or CPtrArray
).
TYPE
Type of the elements stored in the base-class array.
Members
Public Methods
Name | Description |
---|---|
CTypedPtrArray::Add | Adds a new element to the end of an array. Grows the array if necessary |
CTypedPtrArray::Append | Adds the contents of one array to the end of another. Grows the array if necessary |
CTypedPtrArray::Copy | Copies another array to the array; grows the array if necessary. |
CTypedPtrArray::ElementAt | Returns a temporary reference to the element pointer within the array. |
CTypedPtrArray::GetAt | Returns the value at a given index. |
CTypedPtrArray::InsertAt | Inserts an element (or all the elements in another array) at a specified index. |
CTypedPtrArray::SetAt | Sets the value for a given index; array not allowed to grow. |
CTypedPtrArray::SetAtGrow | Sets the value for a given index; grows the array if necessary. |
Public Operators
Name | Description |
---|---|
CTypedPtrArray::operator [ ] | Sets or gets the element at the specified index. |
Remarks
When you use CTypedPtrArray
rather than CPtrArray
or CObArray
, the C++ type-checking facility helps eliminate errors caused by mismatched pointer types.
In addition, the CTypedPtrArray
wrapper performs much of the casting that would be required if you used CObArray
or CPtrArray
.
Because all CTypedPtrArray
functions are inline, use of this template does not significantly affect the size or speed of your code.
For more information on using CTypedPtrArray
, see the articles Collections and Template-Based Classes.
Inheritance Hierarchy
BASE_CLASS
CTypedPtrArray
Requirements
Header: afxtempl.h
CTypedPtrArray::Add
This member function calls BASE_CLASS
::Add.
INT_PTR Add(TYPE newElement);
Parameters
TYPE
Template parameter specifying the type of element to be added to the array.
newElement
The element to be added to this array.
Return Value
The index of the added element.
Remarks
For more detailed remarks, see CObArray::Add.
CTypedPtrArray::Append
This member function calls BASE_CLASS
::Append**.
INT_PTR Append(const CTypedPtrArray<BASE_CLASS, TYPE>& src);
Parameters
BASE_CLASS
Base class of the typed pointer array class; must be an array class ( CObArray or CPtrArray).
TYPE
Type of the elements stored in the base-class array.
src
Source of the elements to be appended to an array.
Return Value
The index of the first appended element.
Remarks
For more detailed remarks, see CObArray::Append.
CTypedPtrArray::Copy
This member function calls BASE_CLASS
::Copy.
void Copy(const CTypedPtrArray<BASE_CLASS, TYPE>& src);
Parameters
BASE_CLASS
Base class of the typed pointer array class; must be an array class ( CObArray or CPtrArray).
TYPE
Type of the elements stored in the base-class array.
src
Source of the elements to be copied to an array.
Remarks
For more detailed remarks, see CObArray::Copy.
CTypedPtrArray::ElementAt
This inline function calls BASE_CLASS
::ElementAt.
TYPE& ElementAt(INT_PTR nIndex);
Parameters
TYPE
Template parameter specifying the type of elements stored in this array.
nIndex
An integer index that is greater than or equal to 0 and less than or equal to the value returned by BASE_CLASS
::GetUpperBound.
Return Value
A temporary reference to the element at the location specified by nIndex. This element is of the type specified by the template parameter TYPE.
Remarks
For more detailed remarks, see CObArray::ElementAt.
CTypedPtrArray::GetAt
This inline function calls BASE_CLASS
::GetAt.
TYPE GetAt(INT_PTR nIndex) const;
Parameters
TYPE
Template parameter specifying the type of elements stored in the array.
nIndex
An integer index that is greater than or equal to 0 and less than or equal to the value returned by BASE_CLASS
::GetUpperBound.
Return Value
A copy of the element at the location specified by nIndex. This element is of the type specified by the template parameter TYPE.
Remarks
For more detailed remarks, see CObArray::GetAt
CTypedPtrArray::InsertAt
This member function calls BASE_CLASS
::InsertAt.
void InsertAt(
INT_PTR nIndex,
TYPE newElement,
INT_PTR nCount = 1);
void InsertAt(
INT_PTR nStartIndex,
CTypedPtrArray<BASE_CLASS, TYPE>* pNewArray);
Parameters
nIndex
An integer index that may be greater than the value returned by CObArray::GetUpperBound.
TYPE
Type of the elements stored in the base-class array.
newElement
The object pointer to be placed in this array. A newElement of value NULL is allowed.
nCount
The number of times this element should be inserted (defaults to 1).
nStartIndex
An integer index that may be greater than the value returned by CObArray::GetUpperBound
.
BASE_CLASS
Base class of the typed pointer array class; must be an array class ( CObArray or CPtrArray).
pNewArray
Another array that contains elements to be added to this array.
Remarks
For more detailed remarks, see CObArray::InsertAt.
CTypedPtrArray::operator [ ]
These inline operators call BASE_CLASS
::operator [ ].
TYPE& operator[ ](int_ptr nindex);
TYPE operator[ ](int_ptr nindex) const;
Parameters
TYPE
Template parameter specifying the type of elements stored in the array.
nIndex
An integer index that is greater than or equal to 0 and less than or equal to the value returned by BASE_CLASS
::GetUpperBound.
Remarks
The first operator, called for arrays that are not const
, can be used on either the right (r-value) or the left (l-value) of an assignment statement. The second, invoked for const
arrays, can be used only on the right.
The Debug version of the library asserts if the subscript (either on the left or right side of an assignment statement) is out of bounds.
CTypedPtrArray::SetAt
This member function calls BASE_CLASS
::SetAt.
void SetAt(
INT_PTR nIndex,
TYPE ptr);
Parameters
nIndex
An integer index that is greater than or equal to 0 and less than or equal to the value returned by CObArray::GetUpperBound.
TYPE
Type of the elements stored in the base-class array.
ptr
A pointer to the element to be inserted in the array at the nIndex. A NULL value is allowed.
Remarks
For more detailed remarks, see CObArray::SetAt.
CTypedPtrArray::SetAtGrow
This member function calls BASE_CLASS
::SetAtGrow.
void SetAtGrow(
INT_PTR nIndex,
TYPE newElement);
Parameters
nIndex
An integer index that is greater than or equal to 0.
TYPE
Type of the elements stored in the base-class array.
newElement
The object pointer to be added to this array. A NULL value is allowed.
Remarks
For more detailed remarks, see CObArray::SetAtGrow.
See also
MFC Sample COLLECT
Hierarchy Chart
CPtrArray Class
CObArray Class