Выбрать главу

        if ( stricmp( nds.firstName , "exit" ) == 0 )

        {

                return false ;

        }

        cout << "Введите фамилию:" ;

        cin >> nds.lastName ;

        cout << "Введите номер кредитной карты:" ;

        cin >> nds.creditCard ;

        return true ;

    }

    /* displayData — Вывод набора данных */

    void displayData( NameDataSet& nds )

    {

        cout << nds.firstName

                << " "

                << nds.lastName

                << " /"

                << nds.creditCard

                << endl ;

    }

В функции main( ) создаётся массив из 25 объектов класса NameDataSet, после чего программа приглашает пользователя ввести необходимую информацию. Затем в теле цикла while происходит вызов функции getData( ), которая ожидает ввода с клавиатуры содержимого элементов массива. Цикл прерывается, если getData( ) возвращает false или если количество заполненных объектов достигло максимального значения ( в данном случае — 25 ). После этого созданные объекты передаются функции displayData, которая выводит их на экран.

Функция getData( ) принимает аргумент типа NameDataSet, которому внутри функции присваивается имя nds. Пока что не обращайте внимания на символ "&" — о нём речь пойдёт в главе 14, "Указатели на объекты".

Внутри функции getData( ) происходит считывание строки из устройства стандартного ввода с последующей его записью в член firstName. Если stricmp( ) находит, что введённая строка — "exit", функция getData( ) возвращает false функции main( ), сигнализируя, что пора выходить из цикла ввода информации. ( Функция stricmp( ) сравнивает строки, не обращая внимания на регистр. Строки "EXIT", "exit" и другие считаются идентичными. ) Если введена строка, отличная от "exit", функция считывает из стандартного ввода фамилию и номер кредитной карты и записывает их в объект nds. Функция displayData( ) выводит на экран все члены объекта nds. Результат работы этой программы выглядит следующим образом.

    Считываем информацию о пользователе

    Введите 'exit' для выхода из программы

    Введите имя: Stephen

    Введите фамилию: Davis

    Введите номер кредитной карты: 123456

_________________

152 стр. Часть 3. Введение в классы

    Введите имя: Marshall

    Введите фамилию: Smith

    Введите номер кредитной карты: 567890

    Введите имя: exit

    Записи:

    Stephen Davis/123456

    Marshall Smith/567890

    Для продолжения нажмите любую клавишу...

Вывод программы начинается с пояснения, как с ней работать. В первой строке я ввёл своё имя ( видите, какой я скромный! ). Поскольку меня не зовут exit, программа продолжает выполнение. Далее я ввёл свою фамилию и номер кредитной карты. Следующим элементом массива я ввёл имя Marshall Smith и номер его кредитной карты. Затем я ввёл строку exit и таким образом прервал цикл заполнения объектов. Как видите, эта программа не делает ничего, кроме вывода только что введённой информации.

_________________

153 стр. Глава 12. Классы в С++

Глава 13. РАБОТА С КЛАССАМИ...154

ОГЛАВЛЕНИЕ

 В этой главе...

►Активизация объектов 154

►Добавление функции-члена 156

►Вызов функций-членов 157

►Разрешение области видимости 161

►Определение функции-члена 162

►Определение функций-членов вне класса 164

►Перегрузка функций-членов 165

Программисты используют классы для объединения взаимосвязанных данных в один объект. Приведённый ниже класс Savings объединяет в себе баланс и уникальный номер счёта.