Стенли Липпман - Язык программирования C++. Пятое издание
- Название:Язык программирования C++. Пятое издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2014
- Город:Москва
- ISBN:978-5-8459-1839-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стенли Липпман - Язык программирования C++. Пятое издание краткое содержание
Вы держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под
. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. В соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.
С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать их наилучшие способы применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.
Стенли Б. Липпман Жози Лажойе Барбара Э. Му • Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием
• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования
• Изучите принципы и узнайте почему язык С++11 работает именно так
• Воспользуйтесь множеством перекрестных ссылок, способных помочь вам объединить взаимосвязанные концепции и проникнуть в суть
• Ознакомьтесь с современными методиками обучения и извлеките пользу из упражнений, в которых подчеркиваются ключевые моменты, позволяющие избежать проблем
• Освойте лучшие методики программирования и закрепите на практике изученный материал
Исходный код примеров можно загрузить с веб-страницы книги на сайте издательства по адресу: http://www.williamspublishing.com
Язык программирования C++. Пятое издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Таблица 5.1. Стандартные классы исключений, определенные в заголовке stdexcept
exception |
Наиболее общий вид проблемы |
runtime_error |
Проблема, которая может быть обнаружена только во время выполнения |
range_error |
Ошибка времени выполнения: полученный результат превосходит допустимый диапазон значения |
overflow_error |
Ошибка времени выполнения: переполнение регистра при вычислении |
underflow_error |
Ошибка времени выполнения: недополнение регистра при вычислении |
logic_error |
Ошибка в логике программы |
domain_error |
Логическая ошибка: аргумент, для которого не существует результата |
invalid_argument |
Логическая ошибка: неподходящий аргумент |
length_error |
Логическая ошибка: попытка создать объект большего размера, чем максимально допустимый для данного типа |
out_of_range |
Логическая ошибка: используемое значение вне допустимого диапазона |
В классах исключений определена только одна функция what()
. Она не получает никаких аргументов и возвращает константный указатель на тип char
. Это указатель на символьную строку в стиле С (см. раздел 3.5.4), содержащую текст описания переданного исключения.
Содержимое символьного массива (строки в стиле С), указатель на который возвращает функция what()
, зависит от типа объекта исключения. Для типов, которым при инициализации передают строку класса string
, функция what()
возвращает строку. Что же касается других типов, то возвращаемое значение зависит от компилятора.
Упражнение 5.23. Напишите программу, которая читает два целых числа со стандартного устройства ввода и выводит результат деления первого числа на второе.
Упражнение 5.24. Перепишите предыдущую программу так, чтобы она передавала исключение, если второе число — нуль. Проверьте свою программу с нулевым вводом, чтобы увидеть происходящее при отсутствии обработчика исключения.
Упражнение 5.25. Перепишите предыдущую программу так, чтобы использовать для обработки исключения блок try
. Раздел catch
должен отобразить сообщение и попросить пользователя ввести новое число и повторить код в блоке try
.
Резюме
Язык С++ предоставляет довольно ограниченное количество операторов. Некоторые из них предназначены для управления потоком выполнения программы.
• Операторы while
, for
и do while
позволяют реализовать итерационные циклы.
• Операторы if
и switch
позволяют реализовать условное выполнение.
• Оператор continue
останавливает текущую итерацию цикла.
• Оператор break
осуществляет принудительный выход из цикла или оператора switch
.
• Оператор goto
передает управление помеченному оператору.
• Операторы try
и catch
позволяют создать блок try
, в который заключают операторы программы, потенциально способные передать исключение. Оператор catch
начинает раздел обработчика исключения, код которого предназначен для реакции на исключение определенного типа.
• Оператор throw
позволяет передать исключение, обрабатываемое в соответствующем разделе catch
.
• Оператор return
останавливает выполнение функции. (Подробней об этом — в главе 6.)
Кроме того, существуют операторы выражения и операторы объявления. Объявления и определения переменных были описаны в главе 2.
Термины
Блок try
. Блок, начинаемый ключевым словом try
и содержащий один или несколько разделов catch
. Если код в блоке try
передаст исключение, а один из разделов catch
соответствует типу этого исключения, то исключение будет обработано кодом данного обработчика. В противном случае исключение будет обработано во внешнем блоке try
, но если и этого не произойдет, сработает функция terminate()
, которая и завершит выполнение программы.
Блок(block). Последовательность любого количества операторов, заключенная в фигурные скобки. Блок операторов может быть использован везде, где ожидается один оператор.
Директива catch
( catch
clause). Состоит из ключевого слова catch
, объявления исключения в круглых скобках и блока операторов. Код в разделе catch
предназначен для обработки исключения, тип которого указан в объявлении.
Класс исключения(exception class). Набор определенных стандартной библиотекой классов, используемых для сообщения об ошибке. Универсальные классы исключений см. в табл. 5.1.
Метка case
. Константное выражение (см. раздел 2.4.4), следующее за ключевым словом case
в операторе switch
. Метки case
в том же операторе switch
не могут иметь одинакового значения.
Метка default
. Метка оператора switch
, соответствующая любому значению условия, не указанному в метках case
явно.
Обработчик исключения(exception handler). Код, реагирующий на исключение определенного типа, переданное из другой части программы. Синоним термина директива catch
.
Объявление исключения(exception declaration). Объявление в разделе catch
. Определяет тип исключений, обрабатываемых данным обработчиком.
Оператор break
. Завершает ближайший вложенный цикл или оператор switch
. Передает управление первому оператору после завершенного цикла или оператора switch
.
Оператор continue
. Завершает текущую итерацию ближайшего вложенного цикла. Передает управление условию цикла while
, оператору do
или выражению в заголовке цикла for
.
Оператор do while
. Подобен оператору while
, но условие проверяется в конце цикла, а не в начале. Тело цикла выполняется по крайней мере однажды.
Оператор for
. Оператор цикла, обеспечивающий итерационное выполнение. Зачастую используется для повторения вычислений определенное количество раз.
Серийный оператор for
(range for
). Управляющий оператор, перебирающий значения указанной коллекции и выполняющий некую операцию с каждым из них.
Оператор goto
. Оператор, осуществляющий безусловную передачу управления помеченному оператору в другом месте той же функции. Операторы goto
нарушают последовательность выполнения операций программы, поэтому их следует избегать.
Оператор if
. Условное выполнение кода на основании значения в условии. Если условие истинно (значение true
), тело оператора if
выполняется, в противном случае управление переходит к оператору, следующему после него.
Интервал:
Закладка: