Tablice i procedury

Tablice w Visual C++ można tworzyć na dwa sposoby pierwszy z nich to:

array <System::Int32>^ tablica1 = {0,0,0,0,0};

A drugi z nich to:

Array^ tablica2 = Array::CreateInstance(System::Int32::typeid,5);

W obu przypadkach stworzyliśmy tablicę 5 elementową. Różnica polega tylko na sposobie wywołania metod dla tych tablic. Najłatwiej pokazać to na przykładzie.

Załóżmy, że chcemy wpisać do obu tablic liczby od 0 do 4 i je wyświetli po naciśnięciu przycisku generuj. Wystarczy wrzucić na Nasza formę przycisku Button i teksBox oraz wpisać coś takiego dla przycisku Button:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
 array <System::Int32>^ tablica1 = {0,0,0,0,0};
 Array^ tablica2 = Array::CreateInstance(System::Int32::typeid,5);
 for (System::Int32 i=0;i<5;i++){
 tablica1[i]=i;
 tablica2->SetValue(i,i);
 }
 textBox1->AppendText("Tablica orginiał"+System::Environment::NewLine);
 wyswietl(tablica1,tablica2);
 }

Łatwo zauważyć, że tablica1 jest uzupełniana troszkę inaczej niż tablica2. Zasada uzupełniania jest prosta. tablice tworzone za pomocą Array::CreatInstance() traktujemy jak komponenty i do ich metod dostajemy się przez operator "->", a tablice utworzone poprzez array traktujemy jako zmienne dynamiczne i możemy odwoływać się do jego metod za pomocą operatora kropki ".".

Linijka  textBox1->AppendText("Tablica orginał"+System::Environment::NewLine); wstawia nam napis "Tablica orginał" oraz przenosi linijkę niżej.

Widzimy, że w tym kodzie występuje procedura  wyswietl(tablica1,tablica2);, której nie ma nigdzie zdefiniowanej, aby ją zdefiniować należy wpisać coś takiego przed wywołaniem przycisku:

private: System::Void wyswietl (array<System::Int32>^ tab1, Array^ tab2){
 System::Int32 w=0;
 do{
 textBox1->AppendText(tab1[w].ToString()+""+tab2->GetValue(w)+System::Environment::NewLine);
 w++;
 } while (w<tab1->Length);
 }

Łatwo zauważyć, że zmiana wartości tablicy na string odbywa się inaczej dla różnych deklaracji, tak jak to opisałem powyżej, albo przy użyciu "->" albo ".". Gotowy program powinien wyglądać tak: