АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Исключения. Обработка нескольких ошибочных ситуаций

Читайте также:
  1. Барабанная перепонка состоит из нескольких слоев.
  2. Внезапное нашествие варваров, избиение нескольких святых иноков, пленение Феодула, сетование святого Нила в уединении и утешение его
  3. Дифференциальное исчисление функций нескольких переменных
  4. Исключения. Синтаксис.
  5. Исключения. Синтаксис.
  6. Методы получения заготовок и их обработка.
  7. Навык №1. применение дезинфицирующих растворов (обработка рук, влажная уборка помещений).
  8. О двух ошибочных воззрениях на речь и мышление
  9. Обработка алюминевых и медных сплавов.
  10. Обработка данных
  11. Обработка данных.

Синтаксис С++ позволяет указывать несколько блоков catch после одного блока try. Соответствующий блок catch будет вызван в зависимости от типа исключения. Выбор обработчика сильно привязан к типу исключения. Если типы не соответствуют, то catch будет пропущен и исключение не будет обработано. В этом случае начнётся «раскрутка стека»: функция, в которой не найден catch будет прервана и произойдёт переход на функцию, которая вызвала прерванную функцию в поисках необходимого catch. Если необходимый catch найден, то исключение обработается, если не найден, то программа завершится.

 

Шаблоны функций.

template<class T>

T sqr(T a)

{

return a*a;

}

template – ключевое слово для шаблона

T – формальный параметр шаблона

sqr(T a) – шаблон кода функции

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

Шаблоны классов.


template<class A>

class Stack

{

private:

A*p;

int max, pos;

public:

Stack (int m);

~Stack ();

void push(A, m);

A pop();

};


template – ключевое слово для шаблона

А – формальный параметр шаблона

Для шаблона класса реализация методов – это также шаблоны.

template<classA>

Stack<A>::Stack(int n)

{

p=new A[m];

max = m;

pos = 0;

}

Библиотека STL. Классификация контейнеров.

Контейнер – это объект, хранящий в себе другие объекты.

· Основные контейнеры:

- veсtor – динамический массив с прямой адресацией

- list – двухсвязный список

- deque – двухсторонняя очередь

· Производные контейнеры (адаптеры контейнеров):

- stack – стек (доступ LIFO)

- quene –очередь (доступ FIFO)

- priority – очередь с приоритетами

· Ассоциативные контейнеры:

- map – карта, ассоциативный массив – набор пар ключ значения

- multimap – ассоциативный массив допускающий дублирование ключей

- set – множество

- multiset - множество с дубликатами

· Почти контейнеры:

- string – строки

- valarray – динамические массивы оптимизированные для численных вычислений

- bit_set – битовое множество

 

 

Библиотека STL. Требования к элементам.

Чтобы контейнер нормально работал должны выполняться следующие правила к типу элемента:

1) Должны быть конструкторы и деструкторы если элемент работает с какими либо ресурсами.

2) Для некоторых операций нужен конструктор по умолчанию.

3) Обычно нужны конструктор копирования и оператор присваивания

4) Для некоторых контейнеров элементы должны иметь операцию сравнения

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

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)