Pole (rozšíření komponent C++)
Platform::Array<T> Zadejte C++/CX, nebo array klíčové slovo v C++/CLI, deklaruje pole Typ a počáteční hodnotu.
Všechny platformy
Pole musí být deklarován pomocí modifikátoru popisovač objektu (^) po uzavření ostrá závorka (>) v deklaraci.
Počet prvků pole není součástí typu.Jednu proměnnou pole můžete odkazovat na pole různých velikostí.
Na rozdíl od standardní C++ indexových je synonymum pro aritmetiky a není komutativní.
Další informace o řadách naleznete zde:
Windows Runtime
Matice jsou členy Platform oboru názvů.Pole může být pouze jednorozměrné.
Syntaxe
V prvním příkladu syntaxe ref new agregační klíčové pole přidělit.Druhý příklad deklaruje místního pole.
[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 [,...]}
Kvalifikátory [Nepovinné]
Některé tyto specifikátory paměťových tříd: proměnlivý, těkavých, const, extern, statické.array-type
Typ proměnné pole.Platné typy jsou Windows Runtime tříd a základní typy, ref tříd a struktur, hodnota třídy a struktur a nativní ukazatele (type*).rank[Nepovinné]
Počet rozměrů pole.Musí být 1.identifier
Název proměnné pole.initialization-type
Typ hodnoty, které inicializovat pole.Obvykle array-type a initialization-type jsou stejného typu.Typy však mohou být různé, pokud je převod z initialization-type na array-type– například pokud initialization-type je odvozen z array-type.initialization-list[Nepovinné]
Čárkami oddělený seznam hodnot do složených závorek, které prvky pole inicializovat.Například pokud rank-size-list byly (3), který deklaruje jednorozměrné 3 prvky initialization list by {1,2,3}.
Poznámky
V době kompilace můžete zjistit, zda je typ počítají referenční pole s __is_ref_array(type).Další informace naleznete v tématu Podpora kompilátoru pro typové vlastnosti (C++ Component Extensions).
Požadavky
Možnost kompilátoru:/ZW
Příklady
Následující příklad vytvoří jednorozměrné má 100 prvky.
// 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
Syntaxe
V prvním příkladu syntaxe gcnew klíčové slovo přidělit matici.Druhý příklad deklaruje místního pole.
[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 [,...]}
Kvalifikátory [Nepovinné]
Některé tyto specifikátory paměťových tříd: proměnlivý, těkavých, const, extern, statické.array-type
Typ proměnné pole.Platné typy jsou Windows Runtime třídy a základní typy tříd ref a struktur, hodnota třídy a struktur, nativní ukazatele (type*) a nativní typy LUSKU (obyčejný stará data).rank[Nepovinné]
Počet rozměrů pole.Výchozí hodnota je 1; maximální hodnota je 32.Každou dimenzi pole je pole.identifier
Název proměnné pole.initialization-type
Typ hodnoty, které inicializovat pole.Obvykle array-type a initialization-type jsou stejného typu.Typy však mohou být různé, pokud je převod z initialization-type na array-type– například pokud initialization-type je odvozen z array-type.rank-size-list
Čárkami oddělený seznam velikost každé dimenze v poli.Alternativně Pokud initialization-list parametr zadán, kompilátor může odvodit velikost každé dimenze a rank-size-list lze vynechat.Další informace naleznete v tématu Jak: vytvoření Multidimension polí.initialization-list[Nepovinné]
Čárkami oddělený seznam hodnot do složených závorek, které prvky pole inicializovat.Čárkami oddělený seznam vnořen nebo inicializační seznam položek, které prvky v vícerozměrné inicializovat.Například pokud rank-size-list byly (3), který deklaruje jednorozměrné 3 prvky initialization list by {1,2,3}.Pokud rank-size-list byly (3,2,4), který deklaruje trojrozměrné 3 prvky v první dimenze, 2 prvky ve druhé a třetí, 4 prvky initialization-list by {{1,2,3},{0,0},{-5,10,-21,99}}.)
Poznámky
arrayje Obory názvů Platform, default a cli (rozšíření komponent C++) oboru názvů.
Podobně jako standardní C++ indexy pole jsou počítány od nuly a je subscripted matice pomocí hranatých závorek ([]).Na rozdíl od standardní C++ indexy vícerozměrné pole jsou uvedena v seznamu indexů pro každou dimenzi místo sady operátorů závorka ([]) pro každou dimenzi.Například identifikátorindex1, index2místo identifikátorindex1] index2.
Všechny spravované pole Zdědit System::Array.Jakékoliv metody nebo vlastnosti System::Array lze použít přímo na pole proměnné.
Při přidělování matice typu prvku, jehož je ukazatel-spravované třídy jsou prvky inicializovány 0.
Při přidělování matice jehož typ elementu je typ hodnoty V, výchozí konstruktor pro V platí pro každý prvek pole.Další informace naleznete v tématu .NET Framework ekvivalenty typy nativního C++ (C + +/ CLI).
V době kompilace můžete zjistit, zda typ je společný jazyk runtime (CLR) pole s __is_ref_array(type).Další informace naleznete v tématu Podpora kompilátoru pro typové vlastnosti (C++ Component Extensions).
Požadavky
Možnost kompilátoru:/clr
Příklady
Následující příklad vytvoří jednorozměrné má 100 prvků a trojrozměrné prvky první dimenze 3, 5 prvků v druhé a 6 prvků ve třetím.
// 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();
}