С++ для начинающих



       е большие сиськи |   

Массивы и векторы объектов


Массив объектов класса определяется точно так же, как массив элементов встроенного типа. Например:

Account table[ 16 ];

определяет массив из 16 объектов Account. Каждый элемент по очереди инициализируется конструктором по умолчанию. Можно и явно передать конструкторам аргументы внутри заключенного в фигурные скобки списка инициализации массива. Строка:

Account pooh_pals[] = { "Piglet", "Eeyore", "Tigger" };

определяет массив из трех элементов, инициализируемых конструкторами:

Account( "Piglet", 0.0 );   // первый элемент (Пятачок)

Account( "Eeyore", 0.0 );   // второй элемент (Иа-Иа)

Account( "Tigger", 0.0 );   // третий элемент (Тигра)

Один аргумент можно задать явно, как в примере выше. Если же необходимо передать несколько аргументов, то придется воспользоваться явным вызовом конструктора:

Account pooh_pals[] = {

   Account( "Piglet", 1000.0 ),

   Account( "Eeyore", 1000.0 ),

   Account( "Tigger", 1000.0 )

};

Чтобы включить в список инициализации массива конструктор по умолчанию, мы употребляем явный вызов с пустым списком параметров:

Account pooh_pals[] = {

   Account( "Woozle", 10.0 ),        // Бука

   Account( "Heffalump", 10.0 ),     // Слонопотам

   Account();

};

Эквивалентный массив из трех элементов можно объявить и так:

Account pooh_pals[3] = {

   Account( "Woozle", 10.0 ),

   Account( "Heffalump", 10.0 )

};

Таким образом, члены списка инициализации последовательно используются для заполнения очередного элемента массива. Те элементы, для которых явные аргументы не заданы, инициализируются конструктором по умолчанию. Если его нет, то в списке должны быть заданы аргументы конструктора для каждого элемента массива.

Доступ к отдельным элементам массива объектов производится с помощью оператора взятия индекса, как и для массива элементов любого из встроенных типов. Например:

pooh_pals[0];

обращается к Piglet, а




Содержание  Назад  Вперед