Дополнение Исключительная ситуация exception — Это состояние ошибки,

>Дополнение Дополнение

>Исключительная ситуация exception - Это состояние ошибки, обнаруженное в программе в ходе ее выполнения Исключительная ситуация exception - Это состояние ошибки, обнаруженное в программе в ходе ее выполнения (деление на ноль, невозможность выделения памяти при создании нового объекта и т.д. )

>try – контролируемый блок  throw  - генерация искл. ситуации внутри try throw(любой) try – контролируемый блок throw - генерация искл. ситуации внутри try throw(любой) catch – обработчики исключений, идут за try

>Перехват исключений Перехват исключений

>Запуск исключений Запуск исключений

>Выполнение текущей функции прекращается Созданные авто переменные уничтожаются Управление передается в точку вызова функции Выполнение текущей функции прекращается Созданные авто переменные уничтожаются Управление передается в точку вызова функции В точке возврата создается та же исключ ситуация и т.д. Управл предается в обработчик исключений

>

>

>Пространство имен.  для решения проблемы совпадения имен механизм, называемый пространством имен Пространство имен. для решения проблемы совпадения имен механизм, называемый пространством имен

>namespace [идентификатор] {  описание для этой рабочей области  } using namespace [идентификатор] namespace [идентификатор] { описание для этой рабочей области } using namespace [идентификатор]

>

>квалифицированное имя состоит из идентификатора пространства имен и идентификатора объекта, разделенных оператором разрешения области квалифицированное имя состоит из идентификатора пространства имен и идентификатора объекта, разделенных оператором разрешения области видимости или контекста (::). NAME::b=2; NAME:: fun(str,NAME:: a);

>неквалифицированное имя using namespace имя using namespace NAME // NAME::b=2   b=2; // неквалифицированное имя using namespace имя using namespace NAME // NAME::b=2 b=2; // NAME:: fun(str,NAME:: a); fun(str,a);

>селективная директива using  Ключевое слово using как объявление  using имя::член  селективная директива using Ключевое слово using как объявление using имя::член обеспечивает более подробное управление именами, переносимыми в пространство имен

>

>namespace spaceA {  int MyVal=10; }  namespace spaceB {  int MyVal=20; namespace spaceA { int MyVal=10; } namespace spaceB { int MyVal=20; } namespace spaceC { int MyVal=30; }

>

>Вложенные контексты пространства имен Вложенные контексты пространства имен

>Управление конфигурациями проекта в Visual Studio 2010 Конфигурация - набор параметров  компилятора, Управление конфигурациями проекта в Visual Studio 2010 Конфигурация - набор параметров компилятора, компоновщика и библиотекаря, используемый при построении проекта. По умолчанию: Debug (отладочная) и Release (финальная)

>Debug (отладочная)   включение полной символьной отладочной информации   выключенная оптимизация Debug (отладочная) включение полной символьной отладочной информации выключенная оптимизация Release (финальная) не содержит никакой отладочной информации (м.б. - > .pdb) подвергается полной оптимизации

>

>

>.pdb .pdb

>

>Макросы особый тип команд препроцессора — специальной программы, которая обрабатывает весь исходный код программы Макросы особый тип команд препроцессора — специальной программы, которая обрабатывает весь исходный код программы перед тем, как он будет передан компилятору

>Отладочный макрос ASSERT ASSERT (assertion - утверждение)  а) функция — вызвать аварийную остановку Отладочный макрос ASSERT ASSERT (assertion - утверждение) а) функция — вызвать аварийную остановку (гарантируя запись/выдачу соответствующей информации) б) автоматически исчезают из релизного кода. (!!!!макрос ASSERT работает только в отладочной версии программы)

>void assert(expression);  печатает диагностическое сообщение и завершает вызванный процесс, если expression ложно, 0. void assert(expression); печатает диагностическое сообщение и завершает вызванный процесс, если expression ложно, 0. Assertion failed: file , line ,

>

>

>Макрос TRACE       Чтобы сообщения программы отображались  в Макрос TRACE Чтобы сообщения программы отображались в окне "Вывод" отладчика

>Макроподстановка  #define имя замещающий текст   Имена в #define  Область действия Макроподстановка #define имя замещающий текст Имена в #define Область действия #define

>Примеры Примеры

>#define идентиф-ор(парам-ы) стр_с_парам-и #define идентиф-ор(парам-ы) стр_с_парам-и

>

>#undef   #undef getchar int getchar (void) {…} #undef #undef getchar int getchar (void) {…}

>Условная компиляция управляет ходом препроцессирования  (выборочное включение)      // Условная компиляция управляет ходом препроцессирования (выборочное включение) // ifndef - истина если не был опред.

>вычисляется предикат условия в #if (не должно sizeof и enum) если не ноль, то вычисляется предикат условия в #if (не должно sizeof и enum) если не ноль, то будут включены все послед строки до #endif #elif #else

>