ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 6) онлайн

Класс как тип данных

Здесь мы рассмотрим пример, демонстрирующий применение объектов C++ в ка- честве переменных типа, определенного пользователем. Объекты будут представ- лять расстояния, выраженные в английской системе мер, описанной в главе 4. Ниже приведен листинг программы ENGLOBJ:

// englobj.cpp

// длины в английской системе в качестве объектов #include <iostream> using namespace std;

//////////////////////////////////////////////////////////

class Distance    // длина в английской системе

{

private:   int feet;   float inches; public:

void setdist( int ft, float in ) // установка значений полей { feet = ft; inches =in; }

void getdist()    // ввод полей с клавиатуры

{

cout << "\nВведите число футов: "; cin >> feet; cout << "Введите число дюймов: "; cin >> inches;

   }

void showdist()                // вывод полей на экран

   { cout << feet << "\'-" << inches << '\"'; }

};

//////////////////////////////////////////////////////////

int main() {

Distance dist1, dist2;      // две длины

dist1.setdist(11,6.25);   // установка значений для d1

dist2.getdist();  // ввод значений для dist2

// вывод длин на экран

cout << "\ndist1 - "; dist1.showdist();

cout << "\ndist2 - "; dist2.showdist();

cout << endl;

return 0;

}

В этой программе класс Distance содержит два поля: feet и inches. Он схож со структурой Distance, рассмотренной в главе 4, однако класс Distance имеет три метода: setdist(), предназначенный для задания значений полей объекта через передаваемые ему аргументы, getdist(), получающий эти же значения с клавиа- туры, и showdist(), отображающий на экране расстояние в футах и дюймах.

Таким образом, значения полей объекта класса Distance могут быть заданы дву- мя способами. В функции main() мы определили две переменные типа Distance: dist1 и dist2. Значения полей для первой из них задаются с помощью функции setdist(), вызванной с аргументами 11 и 6.25, а значения полей переменной dist2 вводятся пользователем. Результат работы программы выглядит следующим образом:

Введите число футов: 10 Введите число дюймов: 4.75

dist1 = 11'-6.25" - задано аргументами программы dist1 = 10'-4.75" - введено пользователем

 

10