Condividi tramite


Classe CTypedPtrArray

Fornisce un "wrapper" indipendente dai tipi per gli oggetti della classe CPtrArray o CObArray.

Sintassi

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

Parametri

BASE_CLASS
Classe base della classe di matrice del puntatore tipizzato; deve essere una classe di matrice ( CObArray o CPtrArray).

TYPE
Tipo degli elementi archiviati nella matrice di classi base.

Membri

Metodi pubblici

Nome Descrizione
CTypedPtrArray::Add Aggiunge un nuovo elemento alla fine di una matrice. Aumenta la matrice, se necessario
CTypedPtrArray::Append Aggiunge il contenuto di una matrice alla fine di un'altra. Aumenta la matrice, se necessario
CTypedPtrArray::Copy Copia nella matrice un'altra matrice; se necessario, aumenta le dimensioni della matrice.
CTypedPtrArray::ElementAt Restituisce un riferimento temporaneo al puntatore dell'elemento nella matrice.
CTypedPtrArray::GetAt Restituisce il valore in corrispondenza di un indice specificato.
CTypedPtrArray::InsertAt Inserisce un elemento (o tutti gli elementi di un'altra matrice) in corrispondenza di un indice specificato.
CTypedPtrArray::SetAt Imposta il valore per un indice specificato; l'aumento di dimensioni della matrice non è consentito.
CTypedPtrArray::SetAtGrow Imposta il valore per un indice specificato; se necessario, aumenta le dimensioni della matrice.

Operatori pubblici

Nome Descrizione
CTypedPtrArray::operator [ ] Imposta o ottiene l'elemento in corrispondenza dell'indice specificato.

Osservazioni:

Quando si usa CTypedPtrArray anziché CPtrArray o CObArray, la funzionalità di controllo dei tipi C++ consente di eliminare gli errori causati da tipi di puntatore non corrispondenti.

Inoltre, il CTypedPtrArray wrapper esegue gran parte del cast che sarebbe necessario se è stato usato CObArray o CPtrArray.

Poiché tutte le CTypedPtrArray funzioni sono inline, l'uso di questo modello non influisce significativamente sulle dimensioni o sulla velocità del codice.

Per altre informazioni sull'uso CTypedPtrArraydi , vedere gli articoli Raccolte e classi basate su modelli.

Gerarchia di ereditarietà

BASE_CLASS

CTypedPtrArray

Requisiti

Intestazione: afxtempl.h

CTypedPtrArray::Add

Questa funzione membro chiama BASE_CLASS::Add.

INT_PTR Add(TYPE newElement);

Parametri

TYPE
Parametro modello che specifica il tipo di elemento da aggiungere alla matrice.

newElement
Elemento da aggiungere a questa matrice.

Valore restituito

Indice dell'elemento aggiunto.

Osservazioni:

Per altre osservazioni dettagliate, vedere CObArray::Add.

CTypedPtrArray::Append

Questa funzione membro chiama BASE_CLASS::Append**.

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

Parametri

BASE_CLASS
Classe base della classe di matrice del puntatore tipizzato; deve essere una classe di matrice ( CObArray o CPtrArray).

TYPE
Tipo degli elementi archiviati nella matrice di classi base.

src
Origine degli elementi da aggiungere a una matrice.

Valore restituito

Indice del primo elemento accodato.

Osservazioni:

Per altre osservazioni dettagliate, vedere CObArray::Append.

CTypedPtrArray::Copy

Questa funzione membro chiama BASE_CLASS::Copy.

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

Parametri

BASE_CLASS
Classe base della classe di matrice del puntatore tipizzato; deve essere una classe di matrice ( CObArray o CPtrArray).

TYPE
Tipo degli elementi archiviati nella matrice di classi base.

src
Origine degli elementi da copiare in una matrice.

Osservazioni:

Per altre osservazioni dettagliate, vedere CObArray::Copy.

CTypedPtrArray::ElementAt

Questa funzione inline chiama BASE_CLASS::ElementAt.

TYPE& ElementAt(INT_PTR nIndex);

Parametri

TYPE
Parametro modello che specifica il tipo di elementi archiviati in questa matrice.

nIndex
Indice integer maggiore o uguale a 0 e minore o uguale al valore restituito da BASE_CLASS::GetUpperBound.

Valore restituito

Riferimento temporaneo all'elemento nella posizione specificata da nIndex. Questo elemento è del tipo specificato dal parametro template TYPE.

Osservazioni:

Per altre osservazioni dettagliate, vedere CObArray::ElementAt.

CTypedPtrArray::GetAt

Questa funzione inline chiama BASE_CLASS::GetAt.

TYPE GetAt(INT_PTR nIndex) const;

Parametri

TYPE
Parametro del modello che specifica il tipo di elementi archiviati nella matrice.

nIndex
Indice integer maggiore o uguale a 0 e minore o uguale al valore restituito da BASE_CLASS::GetUpperBound.

Valore restituito

Copia dell'elemento nella posizione specificata da nIndex. Questo elemento è del tipo specificato dal parametro template TYPE.

Osservazioni:

Per altre osservazioni dettagliate, vedere CObArray::GetAt

CTypedPtrArray::InsertAt

Questa funzione membro chiama BASE_CLASS::InsertAt.

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

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

Parametri

nIndex
Indice integer che può essere maggiore del valore restituito da CObArray::GetUpperBound.

TYPE
Tipo degli elementi archiviati nella matrice di classi base.

newElement
Puntatore all'oggetto da inserire in questa matrice. È consentito un nuovoElement di valore NULL .

nCount
Numero di volte in cui questo elemento deve essere inserito (il valore predefinito è 1).

nStartIndex
Indice integer che può essere maggiore del valore restituito da CObArray::GetUpperBound.

BASE_CLASS
Classe base della classe di matrice del puntatore tipizzato; deve essere una classe di matrice ( CObArray o CPtrArray).

pNewArray
Un'altra matrice che contiene elementi da aggiungere a questa matrice.

Osservazioni:

Per altre osservazioni dettagliate, vedere CObArray::InsertAt.

CTypedPtrArray::operator [ ]

Questi operatori inline chiamano BASE_CLASS::operator [ ].

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

Parametri

TYPE
Parametro del modello che specifica il tipo di elementi archiviati nella matrice.

nIndex
Indice integer maggiore o uguale a 0 e minore o uguale al valore restituito da BASE_CLASS::GetUpperBound.

Osservazioni:

Il primo operatore, chiamato per matrici che non constsono , può essere usato a destra (r-value) o a sinistra (l-value) di un'istruzione di assegnazione. Il secondo, richiamato per const le matrici, può essere usato solo a destra.

La versione debug della libreria asserisce se l'indice (a sinistra o a destra di un'istruzione di assegnazione) è fuori dai limiti.

CTypedPtrArray::SetAt

Questa funzione membro chiama BASE_CLASS::SetAt.

void SetAt(
    INT_PTR nIndex,
    TYPE ptr);

Parametri

nIndex
Indice integer maggiore o uguale a 0 e minore o uguale al valore restituito da CObArray::GetUpperBound.

TYPE
Tipo degli elementi archiviati nella matrice di classi base.

ptr
Puntatore all'elemento da inserire nella matrice in corrispondenza di nIndex. È consentito un valore NULL.

Osservazioni:

Per altre osservazioni dettagliate, vedere CObArray::SetAt.

CTypedPtrArray::SetAtGrow

Questa funzione membro chiama BASE_CLASS::SetAtGrow.

void SetAtGrow(
    INT_PTR nIndex,
    TYPE newElement);

Parametri

nIndex
Indice integer maggiore o uguale a 0.

TYPE
Tipo degli elementi archiviati nella matrice di classi base.

newElement
Puntatore all'oggetto da aggiungere a questa matrice. È consentito un valore NULL .

Osservazioni:

Per altre osservazioni dettagliate, vedere CObArray::SetAtGrow.

Vedi anche

Raccolta di esempi MFC
Grafico della gerarchia
Classe CPtrArray
Classe CObArray