Tablice (C++ Component Extensions)
Platform::Array<T> Należy wpisać w C++/CX, lub array słów kluczowych w C++/CLI, deklaruje tablica określonego typu i wartości początkowej.
Wszystkie platformy
Tablica musi być zadeklarowana przy użyciu modyfikatora uchwyt do obiektu (^) po zamykającego nawiasu ostrego (>) w deklaracji.
Liczba elementów w tablicy nie jest częścią typu.Jedną zmienną array może odnosić się do tablic o różnych rozmiarach.
W przeciwieństwie do standardowych C++ pomijających nie jest synonimem arytmetyki i nie jest przemienne.
Aby uzyskać więcej informacji dotyczących tablic zobacz:
Porady: korzystanie z tablic w języku C++/interfejsie wiersza polecenia
Porady: tworzenie tablic zarządzanych tablic (tablic nieregularnych)
Porady: sortowanie tablic przy użyciu niestandardowych kryteriów
Środowisko wykonawcze systemu Windows
Tablice są członkami Platform obszaru nazw.Tablice mogą być tylko jednowymiarowe.
Składnia
Pierwszy przykład składni ref new agregujące słowo kluczowe, aby przydzielić tablicy.Drugi przykład deklaruje lokalnej tablicy.
[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 [,...]}
Kwalifikatory [opcjonalny]
Jeden lub więcej z tych specyfikatory klasy pamięci masowej: tych, lotnych, const, extern, statyczne.array-type
Typ zmiennej tablicy.Prawidłowe typy to: Środowisko wykonawcze systemu Windows klas i typów podstawowych, klas ref i strukturach, wartość klas i strukturach i macierzystego wskaźniki (type*).rank[opcjonalny]
Liczba wymiarów tablicy.Musi być 1.identifier
Nazwa zmiennej tablicy.initialization-type
Typ wartości, które inicjalizacji tablicy.Zazwyczaj array-type i initialization-type są tego samego typu.Jednakże, mogą być różne, jeśli jest konwersja z typów initialization-type do array-type— na przykład, jeśli initialization-type z array-type.initialization-list[opcjonalny]
Rozdzielana przecinkami lista wartości w nawiasach klamrowych, na które zainicjować elementów tablicy.Na przykład jeśli rank-size-list były (3), która deklaruje tablicą jednowymiarową 3 elementy, initialization list może być {1,2,3}.
Uwagi
Można wykryć w czasie kompilacji, czy typ jest tablica liczone odniesienia o __is_ref_array(type).Aby uzyskać więcej informacji, zobacz Obsługa cech typu w kompilatorze (C++ Component Extensions).
Wymagania
Opcja kompilatora:/ZW
Przykłady
Poniższy przykład tworzy tablicą jednowymiarową ma 100 elementów.
// 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();
}
Środowisko uruchomieniowe języka wspólnego
Składnia
Pierwszy przykład składni gcnew słowo kluczowe, aby przydzielić tablicy.Drugi przykład deklaruje lokalnej tablicy.
[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 [,...]}
Kwalifikatory [opcjonalny]
Jeden lub więcej z tych specyfikatory klasy pamięci masowej: tych, lotnych, const, extern, statyczne.array-type
Typ zmiennej tablicy.Prawidłowe typy to: Środowisko wykonawcze systemu Windows klas i typów podstawowych, klas ref i strukturach, wartość klas i strukturach, wskaźniki macierzystego (type*) i rodzimych typów POD (zwykły stare dane).rank[opcjonalny]
Liczba wymiarów tablicy.Wartością domyślną jest 1; maksymalna wynosi 32.Każdy wymiar tablicy jest tablica.identifier
Nazwa zmiennej tablicy.initialization-type
Typ wartości, które inicjalizacji tablicy.Zazwyczaj array-type i initialization-type są tego samego typu.Jednakże, mogą być różne, jeśli jest konwersja z typów initialization-type do array-type— na przykład, jeśli initialization-type z array-type.rank-size-list
Rozdzielana przecinkami lista rozmiar każdego wymiaru tablicy.Alternatywnie Jeśli initialization-list parametr jest określony, rozmiar każdego wymiaru można wywnioskować, kompilator i rank-size-list można pominąć.Aby uzyskać więcej informacji, zobacz Porady: tworzenie tablic wielowymiarowych.initialization-list[opcjonalny]
Rozdzielana przecinkami lista wartości w nawiasach klamrowych, na które zainicjować elementów tablicy.Lub zagnieżdżone rozdzielaną przecinkami listę listy inicjowania elementów, które zainicjować elementy w tablicą wielowymiarową.Na przykład jeśli rank-size-list były (3), która deklaruje tablicą jednowymiarową 3 elementy, initialization list może być {1,2,3}.Jeśli rank-size-list były (3,2,4), która deklaruje tablicą trójwymiarową z 3 elementów w pierwszym wymiarze, 2 elementy w drugim i 4 elementy w trzecim, initialization-list może być {{1,2,3},{0,0},{-5,10,-21,99}}.)
Uwagi
arrayw Przestrzeń nazw platformy, domyślna i cli (C++ Component Extensions) obszaru nazw.
Jak standard C++ indeksy tablicy są od zera i jest indeksy tablicy, przy użyciu kwadratowych ([]).W przeciwieństwie do standardowych C++ Indeksy tablic wielowymiarowych są określone w listy indeksów dla każdego wymiaru, a nie zestaw operatorów nawias kwadratowy ([]) dla każdego wymiaru.Na przykład identyfikatoraindeks1, indeks2zamiast identyfikatoraindeks1] index2.
Wszystkie tablice zarządzanych dziedziczą z System::Array.Wszelkie metody lub właściwości o System::Array mogą być stosowane bezpośrednio do zmiennej tablicy.
Kiedy przydzielenia tablicy typu elementu, którego jest wskaźnik-do klasy zarządzanej, elementy są inicjowane przez 0.
Kiedy przydzielenia tablicy typu elementu, którego jest wartość typu V, Konstruktor domyślny dla V jest stosowany do każdego elementu tablicy.Aby uzyskać więcej informacji, zobacz Odpowiedniki typów natywnych języka C++ w programie .NET Framework (C++/CLI).
W czasie kompilacji, można wykryć, czy typ jest tablica runtime (CLR) języka wspólnego, o __is_ref_array(type).Aby uzyskać więcej informacji, zobacz Obsługa cech typu w kompilatorze (C++ Component Extensions).
Wymagania
Opcja kompilatora:/clr
Przykłady
Poniższy przykład tworzy tablicą jednowymiarową ma 100 elementów i tablicą trójwymiarową, która ma 3 elementy w pierwszym wymiarze, 5 elementów w drugim i 6 elementów w trzecim.
// 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();
}
Zobacz też
Koncepcje
Component Extensions dla platform środowiska uruchomieniowego