Массив — основа для хранения однородных данных

Тип массива

В качестве типа элементов массива может выступать любо допустимый тип Си++, стандартный или введенный разработчиком. Это могут быть, в частности, классы. Например, если для решения какой-то статистической задачи требуется использовать сто игровых кубиков, то их можно описать так:

TDice dices[100] ;

Обращение к элементу массива классов

Ранее, когда простая (простая — в смысле не массив; еще говорят — скалярная) переменная Dice имела тип TDice, то обращение к ее методу GetDiceValueQ записывалось в формате «переменная.метод»:

Dice.GetDiceValue()

А как записать, допустим, вызов метода пятидесятого элемента dices? Почти так же, только вместо скалярной переменной надо подставить переменную с индексом:' «

dices[49].GetDiceValueО \

В качестве индекса взято число 49, потому что пятидесятый элемент массива в Си++, как уже говорилось, будет иметь сорок девятый номер (нумерация начинается с нуля).

Некоторые стандартные классы C++Builder содержат в себе переменные-массивы. Например, с уже известным нам и активно использующимся классом AnsiString (строка) можно работать как с массивом (последовательностью) символов, только не статическим, а динамическим, так как длина строки во время работы программы может меняться. Получить любой символ этой строки можно с помощью квадратных скобок индексации:

AnsiString s;

s = "12345";

s[0] равно"1",аз[4]="5".

h01751.jpg

Некоторые классы C++Builder допускают работу с собой как с массивами, однако реально они представляют собой не последовательности элементов, а обычные классы, для которых определена операция «[]»(операция так и называется — «.квадратные скобки» или «.выделение элемента по индексу»). Обращение s[0] no смыслу аналогично вызову„метода класса AnsiString, который по номеру символа возвращает его значение. Просто использовать квадратные скобки значительно нагляднее и удобнее.

175