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. Классы в С++
В этой главе...
►Разрешение области видимости 161
►Определение функции-члена 162
►Определение функций-членов вне класса 164
►Перегрузка функций-членов 165
Программисты используют классы для объединения взаимосвязанных данных в один объект. Приведённый ниже класс Savings объединяет в себе баланс и уникальный номер счёта.