Стенли Липпман - Язык программирования C++. Пятое издание
- Название:Язык программирования C++. Пятое издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2014
- Город:Москва
- ISBN:978-5-8459-1839-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стенли Липпман - Язык программирования C++. Пятое издание краткое содержание
Вы держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под
. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. В соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.
С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать их наилучшие способы применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.
Стенли Б. Липпман Жози Лажойе Барбара Э. Му • Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием
• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования
• Изучите принципы и узнайте почему язык С++11 работает именно так
• Воспользуйтесь множеством перекрестных ссылок, способных помочь вам объединить взаимосвязанные концепции и проникнуть в суть
• Ознакомьтесь с современными методиками обучения и извлеките пользу из упражнений, в которых подчеркиваются ключевые моменты, позволяющие избежать проблем
• Освойте лучшие методики программирования и закрепите на практике изученный материал
Исходный код примеров можно загрузить с веб-страницы книги на сайте издательства по адресу: http://www.williamspublishing.com
Язык программирования C++. Пятое издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
if (total.isbn() == trans.isbn())
total += trans; // пополнение текущей суммы
else {
// отобразить результаты по предыдущей книге
std::cout << total << std::endl;
total = trans; // теперь total относится к следующей
// книге
}
}
std::cout << total << std::endl; // отобразить последнюю запись
} else {
// нет ввода! Предупредить пользователя
std::cerr << "No data?!" << std::endl;
return -1; // свидетельство отказа
}
return 0;
}
Это наиболее сложная программа из рассмотренных на настоящий момент, однако все ее элементы читателю уже знакомы.
Как обычно, код начинается с подключения используемых заголовков: iostream
(из библиотеки) и Sales_item.h
(собственного). В функции main()
определен объект по имени total
(для суммирования данных по текущему ISBN). Начнем с чтения первой транзакции в переменную total
и проверки успешности чтения. Если чтение терпит неудачу, то никаких записей нет и управление переходит к наиболее удаленному оператору else
, код которого отображает сообщение, предупреждающее пользователя об отсутствии данных.
Если запись введена успешно, управление переходит к блоку после наиболее удаленного оператора if
. Этот блок начинается с определения объекта trans
, предназначенного для хранения считываемых транзакций. Оператор while
читает все остальные записи. Как и в прежних программах, условие цикла while
читает значения со стандартного устройства ввода. В данном случае данные читаются в объект trans
класса Sales_item
. Пока чтение успешно, выполняется тело цикла while
.
Тело цикла while
представляет собой один оператор if
, который проверяет равенство ISBN. Если они равны, используется составной оператор присвоения для суммирования объектов trans
и total
. Если ISBN не равны, отображается значение, хранящееся в переменной total
, которой затем присваивается значение переменной trans
. После выполнения кода оператора if
управление возвращается к условию цикла while
, читающему следующую транзакцию, и так далее, до тех пор, пока записи не исчерпаются. После выхода из цикла while
переменная total
содержит данные для последнего ISBN в файле. В последнем операторе блока наиболее удаленного оператора if
отображаются данные последнего ISBN.
Упражнение 1.25. Используя загруженный с веб-сайта заголовок Sales_item.h
, откомпилируйте и запустите программу для книжного магазина, представленную в этом разделе.
Резюме
Эта глава содержит достаточно информации о языке С++, чтобы позволить писать, компилировать и запускать простые программы. Здесь было описано, как определить функцию main()
, которую вызывает операционная система при запуске программы. Также было продемонстрировано, как определить переменные, организовать ввод и вывод данных, использовать операторы if
, for
и while
. Глава завершается описанием наиболее фундаментального элемента языка С++ — класса. Здесь было продемонстрировано создание и применение объектов классов, которые были созданы кем-то другим. Определение собственных классов будет описано в следующих главах.
Термины
Аргумент(argument). Значение, передаваемое функции.
Библиотечный тип(library type). Тип, определенный в стандартной библиотеке (например, istream
).
Блок(block). Последовательность операторов, заключенных в фигурные скобки.
Буфер(buffer). Область памяти, используемая для хранения данных. Средства ввода (или вывода) зачастую хранят вводимые и выводимые данные в буфере, работа которого никак не зависит от действий программы. Буферы вывода могут быть сброшены явно, чтобы принудительно осуществить запись на диск. По умолчанию буфер объекта cin
сбрасывается при обращении к объекту cout
, а буфер объекта cout
сбрасывается на диск по завершении программы.
Встроенный тип(built-in type). Тип данных, определенный в самом языке (например, int
).
Выражение(expression). Наименьшая единица вычислений. Выражение состоит из одного или нескольких операндов и оператора. Вычисление выражения определяет результат. Например, сложение целочисленных значений ( i + j
) — это арифметическое выражение, результатом которого является сумма двух значений.
Директива #include
. Делает код в указанном заголовке доступным в программе.
Заголовок(header). Механизм, позволяющий сделать определения классов или других имен доступными в нескольких программах. Заголовок включается в код программы при помощи директивы #include
.
Заголовок iostream
. Заголовок, предоставляющий библиотечные типы для потокового ввода и вывода.
Имя функции(function name). Имя, под которым функция известна и может быть вызвана.
Инициализация(initialize). Присвоение значения объекту в момент его создания.
Класс(class). Средство определения собственной структуры данных, а также связанных с ними действий. Класс — одно из фундаментальных средств языка С++. Классами являются такие библиотечные типы, как istream
и ostream
.
Комментарий(comment). Игнорируемый компилятором текст в исходном коде. Язык С++ поддерживает два вида комментариев: однострочные и парные. Однострочные комментарии начинается символом //
и продолжается до конца строки. Парные комментарии начинаются символом /*
и включают весь текст до заключительного символа */
.
Конец файла(end-of-file). Специфический для каждой операционной системы маркер, указывающий на завершение последовательности данных файла.
Манипулятор(manipulator). Объект, непосредственно манипулирующий потоком ввода или вывода (такой, как std::endl
).
Метод(method). Синоним термина функция-член .
Неинициализированная переменная(uninitialized variable). Переменная, которая не имеет исходного значения. Переменные типа класса, для которых не определено никакого исходного значения, инициализируются согласно определению класса. Переменные встроенного типа, определенные в функции, являются неинициализированными, если они не были инициализированы явно. Использование значения неинициализированной переменной является ошибкой. Неинициализированные переменные являются распространенной причиной ошибок .
Объект cerr
. Объект типа ostream
, связанный с потоком стандартного устройства отображения сообщений об ошибке, который зачастую совпадает с потоком стандартного устройства вывода. По умолчанию запись в объект cerr
не буферизируется. Обычно используется для вывода сообщений об ошибках и других данных, не являющихся частью нормальной логики программы.
Интервал:
Закладка: