🗊 Презентация Приведение типов. Механизм исключений. Задача на разбор командной строки

Нажмите для полного просмотра!
Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №1 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №2 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №3 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №4 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №5 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №6 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №7 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №8 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №9 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №10 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №11 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №12 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №13 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №14 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №15 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №16 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №17 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №18 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №19 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №20 Приведение типов. Механизм исключений. Задача на разбор командной строки, слайд №21

Содержание

Вы можете ознакомиться и скачать презентацию на тему Приведение типов. Механизм исключений. Задача на разбор командной строки. Доклад-сообщение содержит 21 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Осенний семестр 2017 Преподаватель: асс. каф. Чуканов В.С
Описание слайда:
Осенний семестр 2017 Преподаватель: асс. каф. Чуканов В.С

Слайд 2


Содержание Исключения Исключения в конструкторах и деструкторах Операторы приведения типов Постановка задачи: разбор аргументов командной строки...
Описание слайда:
Содержание Исключения Исключения в конструкторах и деструкторах Операторы приведения типов Постановка задачи: разбор аргументов командной строки Описание базового класса переменной Описание произвольной переменной Менеджер переменных

Слайд 3


Исключения Механизм исключений Регламентирует редко случающиеся ситуации, влекущие радикальные изменения в текущем поведении программы либо...
Описание слайда:
Исключения Механизм исключений Регламентирует редко случающиеся ситуации, влекущие радикальные изменения в текущем поведении программы либо прекращение ее работы Код, генерирующий исключения Помещается в блок try { } Исключения создаются вызовом throw [exception_object]; Код, обрабатывающий исключения Помещается в блок catch {}

Слайд 4


Объекты-исключения Семантика Данные об ошибке std::exception Базовый класс исключения в стандартной библиотеке Все исключения стд. библиотеки...
Описание слайда:
Объекты-исключения Семантика Данные об ошибке std::exception Базовый класс исключения в стандартной библиотеке Все исключения стд. библиотеки наследованы от std::exception Объекты-исключения В качестве объекта-исключения может выступать любой класс Классы исключений могут быть организованы в иерархию

Слайд 5


Обработка исключений catch блоки обрабатываются в порядке объявления catch (…) { } Ловит любое исключение Должен быть объявлен последним catch...
Описание слайда:
Обработка исключений catch блоки обрабатываются в порядке объявления catch (…) { } Ловит любое исключение Должен быть объявлен последним catch (BaseClass &b) Должен быть объявлен после всех наследников

Слайд 6


Обработка исключений Обработка исключения = развертка стека вызовов При возникновении исключения поиск обработчика заканчивается во внешнем блоке try...
Описание слайда:
Обработка исключений Обработка исключения = развертка стека вызовов При возникновении исключения поиск обработчика заканчивается во внешнем блоке try .. catch, в который «обернут» main (winmain) Попадание в этот блок ведет к вызову функции terminate() Возникновение исключения во время развертки стека = вызов terminate()

Слайд 7


Исключения в конструкторах и деструкторах Исключение в конструкторе Объект не является созданным, и тело деструктора не будет вызвано Деструкторы...
Описание слайда:
Исключения в конструкторах и деструкторах Исключение в конструкторе Объект не является созданным, и тело деструктора не будет вызвано Деструкторы предков и полей вызываются в стандартном порядке Исключение в деструкторе При возникновении на этапе развертки стека вызовов приведет к вызову terminate() Следует избегать ОБА ВАРИАНТА использования исключений

Слайд 8


Операторы приведения типов type_to_cast a = static_cast (b); Приведение объекта b к типу type_to_cast Проверка уровня компиляции type_to_cast *a =...
Описание слайда:
Операторы приведения типов type_to_cast a = static_cast (b); Приведение объекта b к типу type_to_cast Проверка уровня компиляции type_to_cast *a = dynamic_cast (b); Используется для приведения типов с проверкой в run-time (RTTI, run-time type info) При неудаче вернет NULL type_to_cast &a = dynamic_cast (b); В случае ошибки порождает исключение std::bad_cast const_cast Снимает модификаторы const и volatile reinterpret_cast Максимально небезопасное приведение типов Конвертация указателя в int, любого типа в любой другой

Слайд 9


Ассоциативный контейнер map std::map Отсортированная структура данных, состоящая из пар ключ-значение Реализует красно-черное дерево Тип «ключа»...
Описание слайда:
Ассоциативный контейнер map std::map Отсортированная структура данных, состоящая из пар ключ-значение Реализует красно-черное дерево Тип «ключа» должен иметь оператор сравнения Операции (ключ = std::string) Объявление std::map mymap; Добавление mymap[“firstVal”] = 10; Поиск std::map::iterator – тип итератора по контейнеру std::map::iterator it = mymap.find(“firstVal”); it == mymap.end() – верно в случае отсутствия элемента в контейнере

Слайд 10


Разбор аргументов командной строки Параметры ком. строки Пара «имя» «значение» Значение может быть произвольного типа Значение считывается из строки...
Описание слайда:
Разбор аргументов командной строки Параметры ком. строки Пара «имя» «значение» Значение может быть произвольного типа Значение считывается из строки Задача: разработать класс для обработки командной строки Регистрация имени новой переменной Установка значения по умолчанию для переменной Возврат значения по имени переменной Заполнение значений переменных по массиву argV и кол-ву аргументов argC

Слайд 11


Класс переменной Пара «имя» - «значение» Переменная = значение Класс переменной Унифицированный интерфейс для хранения значения любого типа Интерфейс...
Описание слайда:
Класс переменной Пара «имя» - «значение» Переменная = значение Класс переменной Унифицированный интерфейс для хранения значения любого типа Интерфейс для извлечения значения любого типа из строки

Слайд 12


Базовый класс переменной Любой унифицированный интерфейс = базовый класс
Описание слайда:
Базовый класс переменной Любой унифицированный интерфейс = базовый класс

Слайд 13


Класс переменной: реализация Потомок = шаблон Для каждого фиксированного типа реализуется set_value() Хранение любых наследников возможно по...
Описание слайда:
Класс переменной: реализация Потомок = шаблон Для каждого фиксированного типа реализуется set_value() Хранение любых наследников возможно по указателю на базовый класс

Слайд 14


Менеджер переменных Поля
Описание слайда:
Менеджер переменных Поля

Слайд 15


Регистрация новой переменной Тип неизвестен = шаблонный метод Тип специализации класса-переменной = типу специализации метода регистрации переменной
Описание слайда:
Регистрация новой переменной Тип неизвестен = шаблонный метод Тип специализации класса-переменной = типу специализации метода регистрации переменной

Слайд 16


Получение значения переменной Для указания значения переменной необходимо указать тип Метод - шаблонный Алгоритм Поиск по имени переменной Тип...
Описание слайда:
Получение значения переменной Для указания значения переменной необходимо указать тип Метод - шаблонный Алгоритм Поиск по имени переменной Тип специализации метода = тип специализации наследника variable Приведение к типу наследника dynamic_cast

Слайд 17


Получение значения переменной: реализация
Описание слайда:
Получение значения переменной: реализация

Слайд 18


Закрытый метод set_value Поиск переменной и установка значения
Описание слайда:
Закрытый метод set_value Поиск переменной и установка значения

Слайд 19


Парсинг командной строки
Описание слайда:
Парсинг командной строки

Слайд 20


Указание реализаций set_value Компилятору необходимо указать реализации для всех используемых в коде специализаций variable
Описание слайда:
Указание реализаций set_value Компилятору необходимо указать реализации для всех используемых в коде специализаций variable

Слайд 21


Заключение Исключения Механизм детектирования и обработки ошибок Необходимо избегать возникновения исключений в к-торах и д-торах Приведение типов...
Описание слайда:
Заключение Исключения Механизм детектирования и обработки ошибок Необходимо избегать возникновения исключений в к-торах и д-торах Приведение типов static_cast – проверка только на уровне компиляции (ближе к C-style) dynamic_cast – проверка в run-time Составление контейнеров объектов разных типов Требует дополнительной иерархии Наследник = шаблон Хранение по указателю на базовый класс Может требовать dynamic_cast



Похожие презентации
Mypresentation.ru
Загрузить презентацию