Czegoś takiego nie ma w C++. Indeksy w tablicach są numerami, można co prawda definiować nazwy i przypisywać im tylko numery, wtedy można by się odwoływać do nazw, ale nazwy muszą być zdefiniowane:
- Kod: Zaznacz cały
void __fastcall TForm1::Button2Click(TObject *Sender)
{
const int nazwa_1 = 0;
const int nazwa_2 = 1;
const int nazwa_3 = 2;
const int nazwa_4 = 3;
// itd...
AnsiString Tablica[] = {"tekst a", "tekst b", "tekst c", "tekst d"};
Label1->Caption = Tablica[nazwa_3]; // zostanie wyświetlony napis: tekst c
}
tłumaczysz to tak zawile, że na dobrą sprawę nie wiem o co Tobie właściwie chodzi. Nie rozumiem jak indeks tablicy może być nazwą. Tablica to zbiór wartości uszeregowanych w kolejności, to ta kolejność decyduje o numerach indeksów. Skąd w tablicy zamiast numerów miały by się wziąć nazwy, przecież trzeba by najpierw stworzyć te nazwy, a potem przyporządkować je poszczególnym elementom tablicy.
Tak działa tablica TStringList
( dzial: Porady | TStringList | Tworzenie listy zawierającej nazwy i wartości przypisane do nazw) ponieważ pozwala definiować nazwy, ale trzeba też od razu przypisywać tym nazwom wartości. Ta tablica tak naprawdę nie różni się niczym od innych tablic, ale klasa TStringList ma wbudowany mechanizm rozdzielający wartości poszczególnych indeksów na nazwy i wartości, a wykorzystuje do tego celu separator '='.
Prosty przykład działania takiej tablicy:
- Kod: Zaznacz cały
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TStringList *tablica = new TStringList;
tablica->Add("Opel=Kadet");
tablica->Add("Ford=Escort");
tablica->Add("Polonez=Caro");
tablica->Add("Fiat=Uno");
Label1->Caption = tablica->Values["Polonez"]; // wyświetlony zostanie napis: Caro
delete tablica;
}