ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн
Указатели на объекты
Указатели могут указывать на объекты так же, как и на простые типы данных и массивы. Мы рассмотрели много примеров объявления таких объектов, как:
Distance dist;
где определен объект dist класса Distance.
Однако в некоторых случаях на момент написания программы нам неизвестно количество объектов, которое необходимо создать. Тогда мы можем использовать операцию new для создания объектов во время работы программы. Как мы виде- ли, операция new возвращает указатель на неименованный объект. Рассмотрим два подхода к созданию объектов на примере небольшой программы ENGLPTR.
// englptr.cpp
// доступ к членам класса через указатель
#include <iostream>
using namespace std;
///////////////////////////////////////////////////////////
class Distance
{
private:
int feet;
float inches;
public:
void getdist ( ) // получение информации
{
cout << "\nВведите футы: "; cin >> feet;
cout << "Введите дюймы: "; cin >> inches;
}
void showdist ( ) // вывод информации
{ cout << feet << "\'-" << inches << '\"'; }
};
///////////////////////////////////////////////////////////
int main ( )
{
Distance dist; // определяем объект типа Distance
dist.getdist ( ); // получаем информацию
dist.showdist ( ); // выводим на экран
Distance* distptr; // определяем переменную-указатель на Distance
distptr = new Distance; // создаем объект Distance
distptr->getdist ( ); // получаем для него информацию
distptr->showdist ( ); // выводим информацию
cout << endl;
return 0;
}
В этой программе использована английская вариация класса Distance, рассмот- ренная в предыдущей главе. В функции main() определен dist, использующий сначала функцию getdist() класса Distance для получения интервала от пользова- теля, а затем функцию showdist() для вывода на дисплей этого интервала.
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
