И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина





НазваниеИ. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина
страница30/32
Дата публикации01.09.2013
Размер1.4 Mb.
ТипЛекция
100-bal.ru > Информатика > Лекция
1   ...   24   25   26   27   28   29   30   31   32

5. Упражнения


  1. Тип исключения должен соответствовать типу, заданному в операторе catch. Измените в программе 8.1 тип данных в операторе catch на double. Убедитесь, что исключение не будет перехватываться и программа завершается аварийно.

  2. Что неправильно в данном фрагменте? Как его исправить?

try {

// ...

throw 'a';

// ...

}

catch (char*) {

// ...

}

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

  2. Ниже приведен каркас функции divide(), которая возвращает результат деления числа a на b.

double divide(double a, double b)

{

// добавьте обработку ошибок

return a/b;

}

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

  1. Оператор typeid может определить тип полиморфного объекта по указателю на объект базового класса. В программе 8.3 попробуйте ликвидировать полиморфизм у класса BaseClass (уберите служебное слово virtual в прототипе функции f()) и посмотрите, что программа будет выводить на экран.

  2. Правилен ли следующий оператор?

cout << typeid( float ).name();

  1. Дан фрагмент программы. Как определить, является ли p указателем на объект класса D2?

class B {

virtual void f() {;}

};

class D1 : public B {

void f() {;}

};

class D2 : public B {

void f() {;}

};

void main()

{

B* p;

...

}


  1. Применительно к фрагменту программы из упр. 7 покажите, как с помощью оператора dynamic_cast сделать так, чтобы указатель p указывал на некоторый объект obj только в том случае, если этот объект obj является объектом класса D2.

Лекция 9. Стандартная библиотека шаблонов STL

1. Введение


Абстрактные типы данных (например, динамические массивы, связные списки, стеки, очереди, деревья, множества, словари) используются во многих программах. Поскольку эти типы данных являются типичными, хорошо было бы иметь их в качестве многократно используемых компонент. Богатый набор структур данных был добавлен в стандарт Си++ в виде дополнительной библиотеки – STL. В этой библиотеке содержатся классы для создания динамических массивов, списков, множеств, ассоциативных списков (словарей), стеков, очередей, очередей с приоритетами.

Библиотека STL (STL – Standard Template Library, стандартная библиотека шаблонов) появилась в результате многолетних исследований под руководством Александра Степанова и Менга Ли из компании Hewlett-Packard и Дэвида Мюссера из Rensselaer Polytechnic Institute.

Одна из наиболее необычных идей в STL – это обобщенные алгоритмы. Обобщенные алгоритмы в STL напоминают параметризованные классы (которые часто называются классами-шаблонами). Идея параметризации в Си++ может применяться к отдельным функциям. Чтобы понять концепцию обобщенных алгоритмов, кратко рассмотрим использование инкапсуляции в большинстве объектных библиотек.

Инкапсуляция в ООП – одна из главных целей. Хорошо разработанный класс старается инкапсулировать все состояние и поведение, необходимые для выполнения своей задачи, и в то же время скрывает как можно больше деталей внутреннего устройства. Во многих предшествующих объектно-ориентированных библиотеках этот философский подход воплощался в контейнерных классах, обладающих широкой функциональностью и богатым интерфейсом (например, классы CList, CMap и CArray в библиотеке MFC).

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

Отделяя функционирование алгоритмов от контейнерных классов, библиотека STL значительно выигрывает в размере – как в объеме самой библиотеки, так и в генерируемом коде. Вместо того чтобы дублировать алгоритмы для дюжины контейнерных классов, одно-единственное описание библиотечной функции может использоваться с любым контейнером. Более того, описание этих функций является настолько общим, что они могут применяться с обычными массивами, указателями и встроенными типами данных.

1   ...   24   25   26   27   28   29   30   31   32

Похожие:

И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconИ. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной...
...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconИ. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной...
...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПротокол №5 От 12 января 2012 г Заседания кафедры электроники и вычислительной...
Зав кафедрой Хакимова Г. Г. сообщила, что кафедра проводит 2-й Чемпионат по цифровой схемотехнике
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconМетодические рекомендации по подготовке, оформлению, предзащите и...
В. А. Усков, заместитель декана естественно-географического факультета по развитию, доцент кафедры физической географии и методики...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПроблемы коммуникации
М. Е. Евсевьева (зав кафедрой, доцент А. А. Ветошкин); С. А. Борисова, директор Института международных отношений Ульяновского государственного...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПрограмма по формированию навыков безопасного поведения на дорогах...
Елена Святославовна Симакова, кандидат педагогических наук, доцент кафедры гуманитарных и естественнонаучных дисциплин Рязанского...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПрограмма курса по выбору «Орнитология» предназначена для студентов...
Автор программы: к б н., доцент, зав кафедрой биологии и химии Марина Николаевна Харламова
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРоссийской Федерации Федеральное государственное образовательное...
Петренко И. М., зав кафедрой экономической теории, д-р экон наук профессор Дулин М. П., зав кафедрой педагогики и психологии, д-р...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРахманкулова Людмила Кузьминична, кандидат филологических наук, доцент...
Автор программы: С. А. Виноградова, кандидат филологических наук, доцент, зав кафедрой английского языка и английской филологии
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПрограмма по формированию навыков безопасного поведения на дорогах...
...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconЛингвистические проблемы
Московского государственного педагогического института иностранных языков им. М. Тореза (зав кафедрой доцент Ю. А. Денисенко); д-р...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconМгпу учебно-методический комплекс дисциплины
А. В. Прялухина, кандидат психологических наук, доцент, зав кафедрой психологии Российского государственного социального университета...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРабочая программа по дисциплине «теория экономического анализа»
Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРабочая программа по дисциплине «международный менеджмент»
Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconМетодические рекомендации по написанию курсовых работ дисциплине
Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconУчебное пособие Краснодар 2008
В. А. Оробец); кафедра паразитологии и ветсанэкспертизы Донского государственного аграрного университета (зав кафедрой, проф., к...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск