display_mode[0].set_res(low);
display_mode[0].set_dim(640, 480);
display_mode[1].set_res(medium);
display_mode[1].set_dim(800, 600);
display_mode[2].set_res(high);
display_mode[2].set_dim(1600, 1200);
cout << "Возможные режимы отображения данных:\n\n";
for(i=0; i<3; i++) {
cout << names[display_mode[i].get_res()] << ":";
display_mode[i].get_dim(w, h);
cout << w << " x " << h << "\n";
}
return 0;
}
При выполнении эта программа генерирует такие результаты.
Возможные режимы отображения данных:
низкий: 640 х 480
средний: 800 х 600
высокий: 1600 х 1200
Обратите внимание на использование двумерного символьного массива
Многомерные массивы объектов индексируются точно так же, как многомерные массивы значений других типов.
Если класс включает параметризованный конструктор, то массив объектов такого класса можно инициализировать. Например, в следующей программе используется параметризованный класс
// Инициализация массива объектов.
#include
using namespace std;
class samp {
int a;
public:
samp(int n) { a = n; }
int get_a() { return a; }
};
int main()
{
samp sampArray[4] = { -1, -2, -3, -4 };
int i;
for(i=0; i<4; i++) cout << sampArray[i].get_a() << ' ';
cout << "\n";
return 0;
}
Результаты выполнения этой программы
-1 -2 -3 -4
подтверждают, что конструктору
В действительности синтаксис инициализации массива, выраженный строкой
samp sampArray[4] = { -1, -2, -3, -4 };
представляет собой сокращенный вариант следующего (более длинного) формата:
samp sampArray[4] = { samp(-1), samp(-2), samp(-3), samp(-4) };
Формат инициализации, представленный в программе, используется программистами чаще, чем его более длинный эквивалент, однако следует помнить, что он работает для массивов таких объектов, конструкторы которых принимают только один аргумент. При инициализации массива объектов, конструкторы которых принимают несколько аргументов, необходимо использовать более длинный формат инициализации. Рассмотрим пример.
#include
using namespace std;
class samp {
int a, b;
public:
samp(int n, int m) { a = n; b = m; }
int get_a() { return a; }
int get_b() { return b; }
};
int main()
{
samp sampArray[4][2] = {
samp(1, 2),
samp(3, 4),
samp(5, 6),
samp(7, 8),
samp(9, 10),
samp(11, 12),
samp(13, 14),
samp(15, 16)
};
int i;
for(i=0; i<4; i++) {
cout << sampArray[i][0].get_a() << ' ';
cout << sampArray[i][0].get_b() << "\n";
cout << sampArray[i][1].get_a() << ' ';
cout << sampArray[i][1].get_b() << "\n";
}
cout << "\n";
return 0;
}
В этом примере конструктор класса
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16