close

Вход

Забыли?

вход по аккаунту

?

8 - Массивы экземпляров классов

код для вставкиСкачать
 8. Массивы экземпляров классов. Статические и динамические массивы экземпляров классов. Инициализация объектов массива. Вызов конструкторов и деструкторов при работе с массивами объектов.
Если класс определяет конструктор с параметрами, то можно инициализировать каждый объект массива путем указания списка инициализации в точности так, как это делается для массивов других типов. Однако точная форма списка инициализации будет определяться числом параметров конструктора. Для объектов, чьи конструкторы имеют только один параметр, можно просто указать список начальных значений, используя обычный синтаксис инициализации массивов. Каждое значение в списке по порядку передается конструктору элемента в массиве при его создании. Если конструктор объекта требует два или большее число аргументов, тогда необходимо использовать слегка измененную форму инициализации. Деструктор же будет вызываться автоматически для всех экземпляров класса
class cl {
int h;
int i;
public:
cl(int j, int k) { h=j; i=k; } // конструктор
~cl( cout << "deleted"; ); // деструктор
int get_i() {return i; }
int get_h() {return h; }
};
void main()
{
cl ob[3] = {
cl(1, 2),
cl(3, 4),
cl(5, 6)
}; // инициализаторы
int i;
for (i=0; i<3; i++) {
cout << ob[i].get_h();
cout << ", ";
cout << ob[i].get_i() << "\n";
}
}
Как и любой другой массив, массив экземпляров класса может быть динамическим. Для работы с динамическими массивами экземпляров класса необходимо:
1. Описать указатель на класс.
2. Определить количество экземпляров класса.
3. С помощью оператора new создать динамический массив экземпляров класса.
void main()
{
int m, g;
cl *x; //описываем указатель на класс cl
cout<<"g="; cin>>g; //определяем количество элементов в динамическом массиве
x=new cl[g]; //создаем динамический массив из g экземпляров класса prostr
for (m=0; m<3; m++)
{
cout << x[m].get_h();
}
}
}
Документ
Категория
Разное
Просмотров
100
Размер файла
16 Кб
Теги
классов, массивы, экземпляров
1/--страниц
Пожаловаться на содержимое документа