Главная->Інформатика та програмування->Содержание->Массив указателей на объекты

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В 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() позволяют нам ввести имя и затем вывести его на дисплей.

 

31