Стенли Липпман - Язык программирования 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( catchclause). Состоит из ключевого слова 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выполняется, в противном случае управление переходит к оператору, следующему после него.
Интервал:
Закладка: