Condividi tramite


Matrici (Estensioni del componente C++)

Platform::Array<T> in C++/CX, la parola chiave o array in C++/CLI, viene dichiarata una matrice di un tipo e un valore iniziale specificato.

Tutte le piattaforme

La matrice deve essere dichiarato utilizzando il modificatore dell'handle a un oggetto (^) dopo la parentesi angolare di chiusura (>) nella dichiarazione.

Il numero di elementi della matrice non fa parte del tipo.Una variabile di matrice può fare riferimento alle matrici di dimensioni diverse.

Diversamente dallo standard C++, la sottoscrizione non è sinonimo di operazioni aritmetiche e non è commutativo.

Per ulteriori informazioni sulle matrici, vedere:

Windows Runtime

Le matrici sono membri dello spazio dei nomi Platform.Le matrici possono essere solo unidimensionali.

Sintassi

Il primo esempio di sintassi utilizzata la parola chiave di aggregazione ref new per allocare una matrice.Nel secondo esempio viene dichiarata una matrice locale.

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier = ref new [Platform::]Array< initialization-type > [{initialization-list [,...]}]

[qualifiers] [Platform::]Array<[qualifiers] array-type [,rank]>^ identifier = {initialization-list [,...]}
  • qualificatori [facoltativa]
    Uno o più di questi identificatori di classe di archiviazione: modificabile, volatile, const, esterno, statico.

  • array-type
    Il tipo della variabile di matrice.I tipi validi sono classi Windows Runtime e tipi di base, classi e strutture di riferimento, classi e strutture di valore e puntatori nativi (type*).

  • rank [facoltativa]
    Numero di dimensioni della matrice.Deve essere 1.

  • identifier
    Il nome della variabile di matrice.

  • initialization-type
    Il tipo di valori l'inizializzazione della matrice.In genere, array-type e initialization-type sono dello stesso tipo.Tuttavia, i tipi possono essere diversi se esiste una conversione da initialization-type a array-type, ad esempio se initialization-type è derivato da array-type.

  • initialization-list [facoltativa]
    Un elenco di valori delimitati da virgole tra parentesi curve l'inizializzazione degli elementi della matrice.Ad esempio, se rank-size-list è (3), che dichiara una matrice unidimensionale di 3 elementi, initialization list potrebbe essere {1,2,3}.

Note

È possibile rilevare in fase di compilazione se un tipo è una matrice con calcolata con __is_ref_array(type).Per ulteriori informazioni, vedere Supporto del compilatore per tratti di tipo (Estensioni del componente C++).

ts4c4dw6.collapse_all(it-it,VS.110).gifRequisiti

Opzione del compilatore: /ZW

ts4c4dw6.collapse_all(it-it,VS.110).gifEsempi

L'esempio seguente consente di creare una matrice unidimensionale contenente 100 elementi.

// cwr_array.cpp
// compile with: /ZW
using namespace Platform;
ref class MyClass {};
int main() {
   // one-dimensional array
   Array<MyClass^>^ My1DArray = ref new Array<MyClass^>(100);
   My1DArray[99] = ref new MyClass();
}

Common Language Runtime

Sintassi

Il primo esempio di sintassi utilizzata la parola chiave gcnew per allocare una matrice.Nel secondo esempio viene dichiarata una matrice locale.

[qualifiers] [cli::]array<[qualifiers] array-type [,rank] >^ identifier = gcnew [cli::]array< initialization-type [,rank] >(rank-size-list[,...]) [{initialization-list [,...]}]

[qualifiers] [cli::]array<[qualifiers] array-type [,rank] >^ identifier = {initialization-list [,...]}
  • qualificatori [facoltativa]
    Uno o più di questi identificatori di classe di archiviazione: modificabile, volatile, const, esterno, statico.

  • array-type
    Il tipo della variabile di matrice.I tipi validi sono classi Windows Runtime e tipi di base, classi e strutture di riferimento, classi e strutture di valore, puntatori nativi (type*) e tipi nativi dell'inizializzazione di un).

  • rank [facoltativa]
    Numero di dimensioni della matrice.l'impostazione predefinita è 1; il valore massimo è 32.Ogni dimensione della matrice è essa stessa una matrice.

  • identifier
    Il nome della variabile di matrice.

  • initialization-type
    Il tipo di valori l'inizializzazione della matrice.In genere, array-type e initialization-type sono dello stesso tipo.Tuttavia, i tipi possono essere diversi se esiste una conversione da initialization-type a array-type, ad esempio se initialization-type è derivato da array-type.

  • rank-size-list
    Un elenco delimitato da virgole della dimensione di ogni dimensione della matrice.In alternativa, se il parametro initialization-list viene specificato, il compilatore può dedurre la dimensione di ogni dimensione e rank-size-list può essere omesso.Per ulteriori informazioni, vedere Procedura: Creare matrici di Multidimension.

  • initialization-list [facoltativa]
    Un elenco di valori delimitati da virgole tra parentesi curve l'inizializzazione degli elementi della matrice.O un elenco delimitato da virgole di elementi annidati elenco di inizializzazione l'inizializzazione degli elementi di una matrice multidimensionale.

    Ad esempio, se rank-size-list è (3), che dichiara una matrice unidimensionale di 3 elementi, initialization list potrebbe essere {1,2,3}.Se rank-size-list è (3,2,4), che dichiara una matrice tridimensionale di 3 elementi nella prima dimensione, 2 elementi nel secondo e 4 elementi nel terzo, initialization-list potrebbero essere {{1,2,3},{0,0},{-5,10,-21,99}}).

Note

array è nello spazio dei nomi Spazi dei nomi Platform, default e cli (Estensioni del componente C++).

Come C++ standard, indici di matrice in base zero e una matrice viene formattata utilizzando le parentesi quadre ([]).Diversamente dallo standard C++, indici di una matrice multidimensionale vengono specificati in un elenco di indici per ogni dimensione anziché un set di operatori della parentesi quadra ([]) per ciascuna dimensione.Ad esempio, identificatore[index1, index2] invece identificatore[index1][ index2].

Tutte le matrici gestite ereditano da System::Array.Qualsiasi metodo o proprietà System::Array può essere applicata direttamente alla variabile di matrice.

Quando si alloca una matrice il cui tipo di elemento è puntatore- a una classe gestita, gli elementi sono 0 inizializzato.

Quando si alloca una matrice il cui tipo di elemento è un tipo di valore V, il costruttore predefinito per V viene applicato a ogni elemento della matrice.Per ulteriori informazioni, vedere Equivalenti di .NET Framework a tipi nativi C++ (C++/CLI).

In fase di compilazione, è possibile verificare se un tipo è una matrice di Common Language Runtime (CLR) con __is_ref_array(type).Per ulteriori informazioni, vedere Supporto del compilatore per tratti di tipo (Estensioni del componente C++).

ts4c4dw6.collapse_all(it-it,VS.110).gifRequisiti

Opzione del compilatore: /clr

ts4c4dw6.collapse_all(it-it,VS.110).gifEsempi

L'esempio seguente consente di creare una matrice unidimensionale contenente 100 elementi e una matrice tridimensionale con 3 voci nella prima dimensione, 5 elementi nel secondo e 6 elementi nel terzo.

// clr_array.cpp
// compile with: /clr
ref class MyClass {};
int main() {
   // one-dimensional array
   array<MyClass ^> ^ My1DArray = gcnew array<MyClass ^>(100);
   My1DArray[99] = gcnew MyClass();

   // three-dimensional array
   array<MyClass ^, 3> ^ My3DArray = gcnew array<MyClass ^, 3>(3, 5, 6);
   My3DArray[0,0,0] = gcnew MyClass();
}

Vedere anche

Concetti

Estensioni componenti per le piattaforme runtime