|
Программирование >> Дополнительные возможности наследования
1м 2м Зм 4м 5м Рис. 12.2. Ошибка подсчета столбов для забора в результате получим тот же массив значений, что и в предыдущем примере. Если вам потребуется затем установить размер массива, обратитесь к компилятору, используя следующее выражение: rriiisl USHORT IntegorArrayLength: Int egotAiray Length = sizcof(IntegerArray)/sizeof(IntegerArray[0]); В этом примере число элементов массива определяется как отнощение размера массива в байтах к размеру одного элемента. Результат отнощения сохраняется в переменной IntegerArrayLength типа const USHORT, которая была объявлена строкой выще. Нельзя указывать в списке больще значений, чем заданное количество элементов массива. Так, следующее выр<1жение вызовет показ компилятором сообщения об ощибке, поскольку массиву, состоящему из пяти элементов, пытаются присвоить щесть значений: int IntegerArray[5] = {10, 20, 30, 40, 50, 60); В то же время следующее выражение не будет ощибочным: 1п1 IntegerArray[5] = (10, 20}; .Значения тех элементов массива, которые не были инициализированы при объявлении, не устанавливаются. Обычно считают, что значения неинициализированных ;i чемснтов массива нулевые. В действительности они могут содержать любой мусор - д;тные, которые когда-то ранее были занесены в эти ячейки памяти, что, в свою очередь, может оказаться источником ощибки. Рвкомвндувтся Позвольте компилятору самостоятельно вычислять размер массива. Присваивайте массивам информативные имена, раскрывающие их назначение. Помните, что для обращения к первому элементу массива следует указать индекс о. Нв рвкомвндувтся Не записывайте данные за пределы массива. Объявление массивов Массиву можно присвоить любое имя, но оно должно отличаться от имени всех других переменных и массивов в пределах видимости этого массива. Так, нельзя объявить массив myCats[5], если в программе ранее уже была объявлена переменная myCats. Размер массива при объявлении можно задать как числом, так и с помощью константы или перечисления, как показано в листинге 12,3. flucmuHB 1Z.3. Иснвдьзованио константы и пврвчисдвния нри вОъявдвнии мвссивв Листинг 12.3. Установка размера массива с помощью константы и перечисления ftinclucte <iostream.h> int malnO enum WeekDays { Sun, Men, Tue, Wed, Thu, Fri, Sat, DaysInWeek ) ; int ArrayWeek[DaysInWeek] = { 10, 20, 30, 40, 50, 60, 70 ) cout The value at Tuesday is ArrayWeek[Tue]: return 0; } The value at Tuesday is 30 В строке 7 объявляется перечисление WeekDays, содержащее восемь членов. Воскресенью (Sunday) соответствует значени! О, а константе DaysInWeek - значение 7, В строке 11 константа перечисления Tue используется в качестве указателя на элемент массива. Поскольку константе Tue соответствует значение 2, то в строке 11 возвращается и выводится на печать значение третьего элемента массива ArrayWeek[2]. Массивы Чтобы объявить массив, сначала нужно указать тип объектов, которые будут в нем сохранены, затем определить имя массива и задать размер массива. Размер определяет, сколько объектов заданного типа можно сохранить в данном массиве. Пример 1: int MyIntegerArray[90]; k:.:,;-iУ Пример 2: long * ArrayOfPointersToLogs[100]; Л-: f :)У:ШШ:\У Чтобы получить доступ к элементам массива, используется оператор индексирования. Пример 1: Int theNinethlnteger = MyIntegerArray[8]; У--.-: ---у Пример 2: long pLong = ArrayOfPointersToLogs[8]; ;.:-г-=:Ш.-{У Отсчет индексов массива ведется с нуля. Поэтому, для обращения к массиву, содержащему п элементов, используются индексы от О до п-1. Массивы пОъектпв Любой объект, встроенный или созданный пользователем, может быть сохранен в массиве. Но для этого сначала нужно объявить массив и указать компилятору, для объектов какого типа этот массив создан и сколько объектов он может содержать. Компилятор вычислит, сколько памяти нужно отвести для массива, основываясь на размере объекта, заданном при объявлении класса. Если класс содержит конструктор, заданный по умолчанию, в котором не устанавливаются параметры, то объект класса может быть создан и сохранен в массиве одновременно с объявлением массива.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |