Compartir a través de


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)