ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн
Массив указателей на объекты
Массив указателей на объекты — это часто встречающаяся конструкция в про- граммировании. Этот механизм упрощает доступ к группе объектов, он более ги- бок, чем просто создание массива объектов. (Например, в программе PERSORT этой главы мы увидим, как группа объектов может быть отсортирована путем использования сортировки массива указателей на них.)
В нашем следующем примере PTROBJS мы создадим массив указателей на объекты класса person. Вот листинг программы:
// ptrobjs.cpp
// массив указателей на объекты
#include <iostream>
using namespace std;
///////////////////////////////////////////////////////////
class person // класс человек
{
private:
char name [ 40 ]; // имя человека
public:
void setName ( ) // установка имени
{
cout << "Введите имя: ";
cin >> name;
}
void printName ( ) // показ имени
{
cout << "\n Имя: " << name;
}
};
///////////////////////////////////////////////////////////
int main ( )
{
person* persPtr [ 100 ]; // массив указателей
int n = 0; // количество элементов в массиве
char choice;
do
{
persPtr [ n ] = new person; // создаем новый объект
persPtr [ n ]->setName ( ); // вводим имя
n++; // увеличиваем количество
cout << "Продолжаем ввод (д/н)?"; // спрашиваем, закончен ли ввод
cin >> choice;
}
while ( choice == 'д' );
for ( int j = 0; j < n; j++ )
{
cout << "\nИнформация о номере " << j + 1;
persPtr [ j ]->printName ( );
}
cout << endl;
return 0;
}
Класс person имеет одно поле name, которое содержит строку с именем кли- ента. Методы класса setName() и printName() позволяют нам ввести имя и затем вывести его на дисплей.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
