Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_ekzamen_CPP.doc
Скачиваний:
3
Добавлен:
21.09.2019
Размер:
311.81 Кб
Скачать
  1. Объявление «using». Директива «using». Псевдонимы.

Для объявления имени из некоторого пространства имён используется using-объявление, которое может находиться в любой области видимости, включая глобальную. Синтаксис следующий:

Using имя_пространства_имён :: имя_объекта

Пример:

# include <iostream>

Void main ()

{

Using std :: cout, std :: endl;

int n = 5;

cout << n << endl;

}

Объявление using может также использоваться для вложенных пространств имён.

Директива «using».

Для объявления сразу всех имён из некоторого пространства имён используется директива «using», которая имеет следующий синтаксис:

Using namespace имя_пространства_имён;

Пример:

# include <iostream>

Using namespace std;

Void main ()

{cout << “Hello” << endl;}

Для ввода:

Int a;

Cin >>a;

Псевдонимы.

Пространствам имён можно задать псевдонимы, т.е. альтернативное имя. Синтаксис такого задания выглядит следующим образом:

Namespace псевдоним = имя_пространства_имён.

Пример:

# include <iostream>

Using namespace std;

Namespace International_Business_Machinery

{int n = 1;}

Namespace IBM = International_Business_Machinery

Void main ()

{cout << IBM :: n <<endl;}

Замечание: пространство имён может иметь несколько псевдонимов.

  1. Механизм обработки исключений.

Синтаксические исключения(exception) представляют собой объект произвольного типа, в частности это может быть обычная переменная. Обработка исключений – это механизм передачи управления и исключения специальный блок, который называется обработчиком исключений. Передаваемый объект(исключение), используется для распознавания и соответственно для выполнения тех или иных действий, для обработки возникшей ситуации. Механизм обработки исключений состоит из 4 компонент:

  1. Исключения

  2. Инструкция throw

  3. блок try

  4. catch

Взаимосвязь между этими компонентами представлена следующей схемой:

Try // блок try

{…// произвольные инструкции

Throw выражение….//выброс исключений

…// произвольные инструкции

}

Catch(тип исключения) // блок catch

{ … // обработка исключений

}

Инструкция Throw выражение осуществляет выброс исключения, т.е. передает исключения в блок Catch. Передаваемый объект является результатом вычисления выражения. Блок Try содержит код, который может выбросить исключения. Блок Catch описывает обработчик исключения и должен следовать непосредственно за блоком Try. Допускается использование несколько последовательно расположенных блоков Сatch. Если внутри блока Try произошел выброс исключения то управление передается первому обработчику исключения, тип которого соответствует типу выброшенного исключения. Если такого обработчика нет, то выполнение программы завершается. После обработки исключения управление передается на первую инструкцию, которая следует за последним обработчиком исключений.

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

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

Замечание1. Если будет отсутствовать обработчик «Int» то программа завершалась бы аварийно.

Замечание2. Для выхода из блоков Try и catch можно использовать инструкции передачи управления return и go to. Запрещается передача управления внутрь блоков Try и catch.

Замечание3. Для перехвата исключения любого типа используется следующий обработчик исключения: catch(…)

{

Инструкции

}

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]