Содержание
- 2. Содержание Исключения Исключения в конструкторах и деструкторах Операторы приведения типов Постановка задачи: разбор аргументов командной строки
- 3. Исключения Механизм исключений Регламентирует редко случающиеся ситуации, влекущие радикальные изменения в текущем поведении программы либо прекращение
- 4. Объекты-исключения Семантика Данные об ошибке std::exception Базовый класс исключения в стандартной библиотеке Все исключения стд. библиотеки
- 5. Обработка исключений catch блоки обрабатываются в порядке объявления catch (…) { } Ловит любое исключение Должен
- 6. Обработка исключений Обработка исключения = развертка стека вызовов При возникновении исключения поиск обработчика заканчивается во внешнем
- 7. Исключения в конструкторах и деструкторах Исключение в конструкторе Объект не является созданным, и тело деструктора не
- 8. Операторы приведения типов type_to_cast a = static_cast (b); Приведение объекта b к типу type_to_cast Проверка уровня
- 9. Ассоциативный контейнер map std::map Отсортированная структура данных, состоящая из пар ключ-значение Реализует красно-черное дерево Тип «ключа»
- 10. Разбор аргументов командной строки Параметры ком. строки Пара «имя» «значение» Значение может быть произвольного типа Значение
- 11. Класс переменной Пара «имя» - «значение» Переменная = значение Класс переменной Унифицированный интерфейс для хранения значения
- 12. Базовый класс переменной Любой унифицированный интерфейс = базовый класс class variable_base { public: /*! * \brief
- 13. Класс переменной: реализация template class variable: public variable_base { public: variable(const T& init_value) { m_value =
- 14. Менеджер переменных Поля //! Map of registered variables std::map m_vars; //! Map iterator type typedef std::map
- 15. Регистрация новой переменной Тип неизвестен = шаблонный метод Тип специализации класса-переменной = типу специализации метода регистрации
- 16. Получение значения переменной Для указания значения переменной необходимо указать тип Метод - шаблонный Алгоритм Поиск по
- 17. Получение значения переменной: реализация template bool get_variable(const std::string& var_name, T* var_value) { variable_iterator var_iter = m_vars.find(var_name);
- 18. Закрытый метод set_value Поиск переменной и установка значения bool variable_mgr::set_value(const std::string& var_name, const std::string& var_string) {
- 19. Парсинг командной строки void variable_mgr::run_parser(int argc, char* argv[]) { int var_id = 1; while ( var_id
- 20. Указание реализаций set_value Компилятору необходимо указать реализации для всех используемых в коде специализаций variable template bool
- 22. Скачать презентацию