Clase CTypedPtrArray
Proporciona un "contenedor" con seguridad de tipos para objetos de clase CPtrArray
o CObArray
.
Sintaxis
template<class BASE_CLASS, class TYPE>
class CTypedPtrArray : public BASE_CLASS
Parámetros
BASE_CLASS
Clase base de la clase de matriz de puntero tipo. Debe ser una clase de matriz ( CObArray
o CPtrArray
).
TYPE
Tipo de los elementos almacenados en la matriz de clase base.
Miembros
Métodos públicos
Nombre | Descripción |
---|---|
CTypedPtrArray::Add | Agrega un nuevo elemento al final de una matriz. Aumenta la matriz si es necesario |
CTypedPtrArray::Append | Agrega el contenido de una matriz al final de otra. Aumenta la matriz si es necesario |
CTypedPtrArray::Copy | Copia otra matriz a la matriz; aumenta el tamaño de la matriz si es necesario. |
CTypedPtrArray::ElementAt | Devuelve una referencia temporal al puntero del elemento dentro de la matriz. |
CTypedPtrArray::GetAt | Devuelve el valor en un índice dado. |
CTypedPtrArray::InsertAt | Inserta un elemento (o todos los elementos de otra matriz) en un índice especificado. |
CTypedPtrArray::SetAt | Establece el valor de un índice dado; la matriz no puede aumentar de tamaño. |
CTypedPtrArray::SetAtGrow | Establece el valor de un índice dado; aumenta el tamaño de la matriz si es necesario. |
Operadores públicos
Nombre | Descripción |
---|---|
CTypedPtrArray::operator [ ] | Establece u obtiene el elemento en el índice especificado. |
Comentarios
Si se usa CTypedPtrArray
en lugar de CPtrArray
o CObArray
, la capacidad de comprobación de tipos de C++ ayuda a eliminar los errores causados por tipos de punteros no coincidentes.
Además, el contenedor CTypedPtrArray
realiza gran parte de la conversión necesaria si se usara CObArray
o CPtrArray
.
Dado que todas las funciones CTypedPtrArray
están insertadas, el uso de esta plantilla no afecta significativamente al tamaño o la velocidad del código.
Para obtener más información sobre el uso de CTypedPtrArray
, vea los artículos Colecciones y Clases basadas en plantillas.
Jerarquía de herencia
BASE_CLASS
CTypedPtrArray
Requisitos
Encabezado: afxtempl.h
CTypedPtrArray::Add
Esta función miembro llama a BASE_CLASS
::Add.
INT_PTR Add(TYPE newElement);
Parámetros
TYPE
Parámetro de plantilla que especifica el tipo de elemento que se vaya a agregar a la matriz.
newElement
Elemento que se va a agregar a esta matriz.
Valor devuelto
El índice del elemento agregado.
Comentarios
Para obtener comentarios más detallados, consulte CObArray::Add.
CTypedPtrArray::Append
Esta función miembro llama a BASE_CLASS
::Append**.
INT_PTR Append(const CTypedPtrArray<BASE_CLASS, TYPE>& src);
Parámetros
BASE_CLASS
Clase base de la clase de matriz de puntero tipo. Deberá ser una clase de matriz ( CObArray o CPtrArray).
TYPE
Tipo de los elementos almacenados en la matriz de clase base.
src
Origen de los elementos que se van a anexar a una matriz.
Valor devuelto
Índice del primer elemento anexado.
Comentarios
Para obtener comentarios más detallados, consulte CObArray::Append.
CTypedPtrArray::Copy
La función miembro llama a BASE_CLASS
::Copy.
void Copy(const CTypedPtrArray<BASE_CLASS, TYPE>& src);
Parámetros
BASE_CLASS
Clase base de la clase de matriz de puntero tipo. Deberá ser una clase de matriz ( CObArray o CPtrArray).
TYPE
Tipo de los elementos almacenados en la matriz de clase base.
src
Origen de los elementos que se vayan a copiar en una matriz.
Comentarios
Para obtener comentarios más detallados, consulte CObArray::Copy.
CTypedPtrArray::ElementAt
Esta función insertada llama a BASE_CLASS
::ElementAt.
TYPE& ElementAt(INT_PTR nIndex);
Parámetros
TYPE
Parámetro de plantilla que especifica el tipo de elementos almacenados en esta matriz.
nIndex
Índice entero mayor o igual que 0 y menor o igual que el valor devuelto por BASE_CLASS
::GetUpperBound.
Valor devuelto
Referencia temporal al elemento en la ubicación especificada por nIndex. Este elemento es del tipo especificado por el parámetro de plantilla TYPE.
Comentarios
Para obtener comentarios más detallados, consulte CObArray::ElementAt.
CTypedPtrArray::GetAt
Esta función insertada llama a BASE_CLASS
::GetAt.
TYPE GetAt(INT_PTR nIndex) const;
Parámetros
TYPE
Parámetro de plantilla que especifica el tipo de elementos almacenados en la matriz.
nIndex
Índice entero mayor o igual que 0 y menor o igual que el valor devuelto por BASE_CLASS
::GetUpperBound.
Valor devuelto
Copia del elemento en la ubicación especificada por nIndex. Este elemento es del tipo especificado por el parámetro de plantilla TYPE.
Comentarios
Para obtener comentarios más detallados, consulte CObArray::GetAt
CTypedPtrArray::InsertAt
Esta función miembro llama a BASE_CLASS
::InsertAt.
void InsertAt(
INT_PTR nIndex,
TYPE newElement,
INT_PTR nCount = 1);
void InsertAt(
INT_PTR nStartIndex,
CTypedPtrArray<BASE_CLASS, TYPE>* pNewArray);
Parámetros
nIndex
Índice entero que puede ser mayor que el valor devuelto por CObArray::GetUpperBound.
TYPE
Tipo de los elementos almacenados en la matriz de clase base.
newElement
Puntero de objeto que se va a colocar en esta matriz. Se permite un newElement de valor NULL.
nCount
Número de veces que se debe insertar este elemento (el valor predeterminado es 1).
nStartIndex
Índice entero que puede ser mayor que el valor devuelto por CObArray::GetUpperBound
.
BASE_CLASS
Clase base de la clase de matriz de puntero tipo. Deberá ser una clase de matriz ( CObArray o CPtrArray).
pNewArray
Otra matriz que contiene elementos que se van a agregar a esta matriz.
Comentarios
Para obtener comentarios más detallados, consulte CObArray::InsertAt.
CTypedPtrArray::operator [ ]
Estos operadores insertados llaman a BASE_CLASS
::operator [ ].
TYPE& operator[ ](int_ptr nindex);
TYPE operator[ ](int_ptr nindex) const;
Parámetros
TYPE
Parámetro de plantilla que especifica el tipo de elementos almacenados en la matriz.
nIndex
Índice entero mayor o igual que 0 y menor o igual que el valor devuelto por BASE_CLASS
::GetUpperBound.
Comentarios
El primer operador, llamado para matrices que no sean const
, se podrá usar en la derecha (r-value) o en la izquierda (l-value) de una instrucción de asignación. El segundo, invocado para const
matrices, solo se podrá usar a la derecha.
La versión de depuración de la biblioteca afirma si el subíndice (ya sea en el lado izquierdo o derecho de una instrucción de asignación) está fuera de los límites.
CTypedPtrArray::SetAt
Esta función miembro llama a BASE_CLASS
::SetAt.
void SetAt(
INT_PTR nIndex,
TYPE ptr);
Parámetros
nIndex
Índice entero mayor o igual que 0 y menor o igual que el valor devuelto por CObArray::GetUpperBound.
TYPE
Tipo de los elementos almacenados en la matriz de clase base.
ptr
Puntero al elemento que se vaya a insertar en la matriz en nIndex. Se permite un valor NULL.
Comentarios
Para obtener comentarios más detallados, consulte CObArray::SetAt.
CTypedPtrArray::SetAtGrow
Esta función miembro llama a BASE_CLASS
::SetAtGrow.
void SetAtGrow(
INT_PTR nIndex,
TYPE newElement);
Parámetros
nIndex
Índice entero mayor o igual que 0.
TYPE
Tipo de los elementos almacenados en la matriz de clase base.
newElement
Puntero de objeto que se vaya a agregar a esta matriz. Se permite un valor NULL.
Comentarios
Para obtener comentarios más detallados, consulte CObArray::SetAtGrow.
Consulte también
Ejemplo COLLECT de MFC
Gráfico de jerarquías
CPtrArray (clase)
CObArray (clase)