377 стр. Глава 31. Программа BUDGET
Создание списка счетов...378
Функция main( ) создаёт список объектов listAccounts, который имеет тип list< AccountPtr >.
Теоретически я могу реализовать шаблон класса как list< Account* >, но так поступают редко — дабы не портить определения внутри шаблонов классов STL, обычно используют синонимы указателей, полученные при помощи оператора typedef.
«Тип AccountPtr определён с использованием ключевого слова typedef и представляет собой то же, что и Account*. Таким образом, везде, где написано AccountPtr, можно читать "указатель на Account".»
[Помни!]
Функция main( ) передаёт список указателей на объекты Account функциям getAccounts( ) и displayResults( ). Метод getAccounts( ) добавляет объекты Account в конец списка при помощи функции-члена push_back( ).
Функция displayResults( ) может удалять объекты Account из списка при помощи одного из предназначенных для этой цели методов; однако это будет так называемое деструктивное чтение, которое изменяет список ( в нашем случае — удаляя из него объекты ). Поскольку мы хотим иметь возможность работать со списком и после вывода его на экран, нам надо воспользоваться итератором — объектом, который указывает на объекты в списке. Программа в цикле перемещает итератор от одного элемента списка к следующему.
Функция displayResults( ) определяет итератор iter в начале цикла while( ). Присвоение iter = accntList.begin( ) инициализирует объект iter первым элементом списка. Значение accntList.end( ) представляет собой "объект, непосредственно следующий за последним объектом в контейнере". Таким образом, цикл должен полностью обойти весь список к моменту, когда iter становится равным accntList.end( ). Выражение *iter даёт нам то, что можно назвать "текущим объектом", а выражение iter++ перемещает итератор к следующему объекту в списке.
В остальном программа BUDGET5 эквивалентна программам BUDGET4 и BUDGET3.
_________________
378 стр. Часть 6. Великолепная десятка
Приложение. Содержимое прилагаемого компакт-диска
На прилагаемом компакт-диске вы найдёте все полные исходные тексты программ, использованных в данной книге. В папке CPP_Programs тексты находятся в папках, соответствующих главам книги. Для удобства работы вам следует скопировать всю папку CPP_Programs к себе на жёсткий диск и работать с программами с жёсткого диска, что позволит вам редактировать программы, внося в них различные изменения.
Кроме того, в папке BUDGET имеется демонстрационное финансовое приложение. Здесь вы найдёте пять версий этого приложения — от простейшего к наиболее сложному, с использованием большого количества различных возможностей С++.
Если у вас не установлено программное обеспечение для работы с pdf-файлами, то вы можете воспользоваться Acrobat Reader, который находится на прилагаемом компакт-диске в одноименном каталоге.
На компакт-диске вы найдёте и описанную в книге среду программирования Dev-C++. Её инсталляционный файл devcpp4980.ехе, который надо запустить для установки Dev-C++ на ваш компьютер, находится в папке devcpp.
Кроме того, здесь же имеется документация ( на английском языке ) по стандартной библиотеке шаблонов ( STL ).
_________________
379 стр. Приложение
ПИКТОГРАММЫ
Технические подробности, которые можно пропустить при первом чтении.
ОГЛАВЛЕНИЕ
Часть 1. Первое знакомство с С++
Глава 1. Написание вашей первой программы 25
►Как пишут программы...26
Глава 4. Выполнение логических операций 55
►Использование простых логических операторов...55
Логические операции и действительные переменные...58
►Бинарные числа в С++...60
Глава 5. Операторы управления программой 66
►Выполнение циклов...68
Избегайте бесконечных циклов...73
Часть 3. Введение в классы 143
Глава 13. Работа с классами 154
►Добавление функции-члена...156
Создание функции-члена...156
►Вызов функций-членов...157
Именование текущего объекта...160
►Определение функции-члена...162