Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры ппвис 2 часть с++.doc
Скачиваний:
26
Добавлен:
01.03.2016
Размер:
265.22 Кб
Скачать

45. Характеристика пространства имен.

Пространство имен связано с такими понятиями, как сфера действия объекта и область видимости, использующаяся на ряду со стандартной сферой действия имен. С любой переменной (объектом) связаны как область видимости, так и время жизни переменной. Указанное зависит от описания, от места, где оно сделано т от спецификаторов описания (static, extern, auto, register). Указанное можно отнести к области имен.

Пространство имён (англ. namespace) — некоторое множество, под которым подразумевается модель, абстрактное хранилище или окружение, созданное для логической группировки уникальных идентификаторов (то есть имён). Идентификатор, определенный в пространстве имён, ассоциируется с этим пространством. Один и тот же идентификатор может быть независимо определён в нескольких пространствах. Таким образом, значение, связанное с идентификатором, определённым в одном пространстве имён, может иметь (или не иметь) такое же (а скорее, другое) значение, как и такой же идентификатор, определённый в другом пространстве. Доступ к именам не запрещается, но требует или прямого указания имени пространства имен, либо путем предварительного подключения через using.

При описании пространства имен необходимо помнить:

  1. Пространство имен может быть безмерным

  2. Одно пространство имен может быть сегментировано (разделение на части).

  3. Относительно пространства имен действует правило вложенности по отношению к другим средствам ограничения видимости.

В пространстве имен может быть несколько других пространств, но только нельзя вкладывать внутри другие пространства.

46. Описание и использование пространства имен (на примере).

Namespace Name {

int a=7;

}

namespace MY {

int a=10;

}

;

int a;

int main()

{ int a=9;

printfa=%d;\n», MY::a); //переменная из именного пространства MY

printfa= %d;\n», a); //локальная переменная

printfa= %d;\n», Name::a); //переменная из именного пространства Name

printfa= %d;\n», ::a); //глобальная переменная

}

47. Понятие исключительная ситуация и способы обработки исключений.

обработка исключений – мех-зм языков пр-ния, предназнач для описания реакции пр-мы на ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы и приводят к невозможности (бессмысленности) дальнейшей отработки программой её базового алгоритма (прерывание выполнения программы, вывод соответствующего сообщения и прерывание программы).

Способы:

  1. Автоматически -> terminate -> abest программа аварийно завершается.(пример - деление на ноль).

  2. Системная реакция (автоматическая генерация исключений). Если используется команда catch (…), то в этом случае обработка передается в catch, где прописан алгоритм действия. (прописано пользователем).

  3. Пользователь сам сообщает системе об исключительной ситуации throw ->catch[аргументы] поиск подходящего сегмента обработки ведется по типу аргумента. Каждый тип ошибки кодируется своим типом, нужный тип выбирается пользователем.

Пользователь может использовать пользовательские средства обработки исключений той или иной библиотеки.

48. Характеристика технологии обработки исключительных ситуаций в С++.

Способы:

  1. Автоматически -> terminate -> abest программа аварийно завершается.(пример - деление на ноль).

  2. Системная реакция (автоматическая генерация исключений). Если используется команда catch (…), то в этом случае обработка передается в catch, где прописан алгоритм действия. (прописано пользователем).

  3. Пользователь сам сообщает системе об исключительной ситуации throw ->catch[аргументы] поиск подходящего сегмента обработки ведется по типу аргумента. Каждый тип ошибки кодируется своим типом, нужный тип выбирается пользователем.

  4. Пользователь может использовать пользовательские средства обработки исключений той или иной библиотеки.

Обработка исключений при помощи try, catch позволяет отделить от основного текста программы те части программы, которые занимаются обработкой исключений.

Структура программы:

try

{

throw[]

}

catch()

try {} – тот участок программы, который при нормальном выполнении catch пропускается и программы продолжается. После try следует 1-н или несколько секций catch. Все они относятся к try если в какой-либо точке try обнаружит исключительную ситуацию. В этом случае возбуждается исключение с аргументом соответствующего типа – последовательно просматривается catch, выполняется действие, прописанное в catch, программа выполняется далее. Последним ставится catch(…) – она выполняется, если ни один из catch не подходит.