Лекция 10_Дополнение.ppt
- Количество слайдов: 38
Дополнение
Исключительная ситуация exception - Это состояние ошибки, обнаруженное в программе в ходе ее выполнения (деление на ноль, невозможность выделения памяти при создании нового объекта и т. д. )
► try – контролируемый блок ► throw - генерация искл. ситуации внутри try throw(любой) ► catch – обработчики исключений, идут за try
Перехват исключений
Запуск исключений
► Выполнение текущей функции прекращается ► Созданные авто переменные уничтожаются ► Управление передается в точку вызова функции ► В точке возврата создается та же исключ ситуация и т. д. ► Управл предается в обработчик исключений
Пространство имен. для решения проблемы совпадения имен механизм, называемый пространством имен
namespace [идентификатор] { описание для этой рабочей области } using namespace [идентификатор]
квалифицированное имя состоит из идентификатора пространства имен и идентификатора объекта, разделенных оператором разрешения области видимости или контекста (: : ). NAME: : b=2; NAME: : fun(str, NAME: : a);
неквалифицированное имя using namespace NAME // NAME: : b=2; // NAME: : fun(str, NAME: : a); fun(str, a);
селективная директива using Ключевое слово using как объявление using имя: : член обеспечивает более подробное управление именами, переносимыми в пространство имен
namespace. A { int My. Val=10; } namespace. B { int My. Val=20; } namespace. C { int My. Val=30; }
Вложенные контексты пространства имен
Управление конфигурациями проекта в Visual Studio 2010 ► Конфигурация - набор параметров компилятора, компоновщика и библиотекаря, используемый при построении проекта. По умолчанию: Debug (отладочная) и Release (финальная)
Debug (отладочная) ► включение полной символьной отладочной информации ► выключенная оптимизация Release (финальная) ► не содержит никакой отладочной информации (м. б. - > . pdb) ► подвергается полной оптимизации
. pdb
Макросы ► особый тип команд препроцессора — специальной программы, которая обрабатывает весь исходный код программы перед тем, как он будет передан компилятору
Отладочный макрос ASSERT ► ASSERT (assertion - утверждение) ► а) функция — вызвать аварийную остановку (гарантируя запись/выдачу соответствующей информации) ► б) автоматически исчезают из релизного кода. (!!!!макрос ASSERT работает только в отладочной версии программы)
void assert(expression); печатает диагностическое сообщение и завершает вызванный процесс, если expression ложно, 0. Assertion failed: file , line ,
Макрос TRACE Чтобы сообщения программы отображались в окне "Вывод" отладчика
Макроподстановка #define имя замещающий текст Имена в #define Область действия #define
Примеры
#define идентиф-ор(парам-ы) стр_с_парам-и
#undef getchar int getchar (void) {…}
Условная компиляция управляет ходом препроцессирования (выборочное включение) // ifndef - истина если не был опред.
► вычисляется предикат условия в #if (не должно sizeof и enum) ► если не ноль, то будут включены все послед строки до #endif #else


