Программа курса лекций

Вид материалаПрограмма курса
Подобный материал:

Объектно-ориентированное программирование

Программа курса лекций
(2 курс, 4 сем., 32 ч., экзамен)


Ассистент Лопаткин Алексей Александрович
  1. Построение пользовательских интерфейсов
    1. Оконные системы. Графический интерфейс семейства операционных систем Windows. Клиент-серверная архитектура интерфейса XWindows.
    2. Win32 API (Application Programming Interface). Общее устройство подсистемы GUI (Graphical User Interface) интерфейса Win32 API. Контексты устройств, окна, сообщения и очереди сообщений, отображение графических примитивов.
    3. Библиотека MFC (Microsoft Foundation Classes).
    4. Основные элементы управления. Кнопки, окна редактирования, полосы прокрутки, диалоги, окна сообщений и другие элементы.
    5. Архитектура Document-View. Однодокументные и многодокументные приложения.
    6. Построение интерфейсов для многопоточных приложений ОС Windows. Объекты и функции синхронизации, предоставляемые ОС Windows.
  2. Множественное наследование и информация о типе во время исполнения
    1. Множественное наследование. Разрешения неоднозначностей. Использование using-объявлений.
    2. Повторяющиеся базовые классы. Виртуальные базовые классы. Способы реализации множественного наследования в С++. Накладные расходы при использовании виртуальных базовых классов.
    3. Управление доступом. Public, protected и private наследование. Наследование интерфейса и реализации.
    4. Информация о типе во время исполнения (run-time type information RTTI). Способ реализации. Использование RTTI. Накладные расходы.
  3. Обобщенное программирование и Стандартная библиотека С++.
    1. Шаблоны функций и шаблоны классов. Определение шаблона. Инстанцирование шаблона. Явное инстанцирование.
    2. Шаблоны-члены класса.
    3. Специализация шаблонов. Частичная специализация шаблонов.
    4. Строки.
    5. Стандартные контейнеры. Список, вектор, очереди, стек, ассоциативные массивы, множества.
    6. Итераторы.
    7. Обобщенные алгоритмы.
    8. Потоки.
  4. Другие объектно-ориентированные языки, компонентное программирование.
    1. Другие объектно-ориентированные языки.
    2. Язык Smalltalk и метапрограммирование.
    3. Язык Java. Интерфейсы, как альтернатива множественному насле­до­ванию. Автоматическая сборка мусора, ее плюсы и минусы.
    4. Компонентное программирование.

Литература

  1. Буч Г. Объектно-ориентированный анализ и проектирование, 2-е изд. СПб.: Невский Диалект, 1998.
  2. Страуструп Б. Язык программирования С++, 3-е изд. СПб.: Невский Диалект, 1999.
  3. Страуструп Б. Дизайн и эволюция С++. М.: ДМК Пресс, 2000.

Объектно-ориентированное программирование

Программа лабораторных занятий
(2 курс, 4 сем., 48 ч., зачет)


Ассистент Лопаткин Алексей Александрович

Ассистент Савин Алексей Михайлович
  1. Виртуальные функции.
  2. Приведения типов.
  3. Перегрузка оператора new.
  4. Пространства имен.
  5. Исключения языка С++. Разматывание стека.

Задания

  1. Множественное наследование. Виртуальные базовые классы. Наследование интерфейса и реализации.
  2. Шаблоны функций и классов. Специализация шаблонов.
  3. Стандартная библиотека языка. Стоки, контейнеры, итераторы. Обобщенные алгоритмы.
  4. Создание диалогового приложения Win32 с использованием библиотеки MFC.
  5. Эффективная реализация механизма динамической типизации для одиночного наследования без использования RTTI.
  6. Динамическое создание объектов по имени класса. Чтение и запись объектов.
  7. Восстановление ссылок в объектах после чтения из файла.
  8. Реализация шаблона простого контейнера.
  9. Реализация обобщенного алгоритма сортировки, параметризуемого функцией сравнения.

Литература

    1. Буч Г. Объектно-ориентированный анализ и проектирование, 2-е изд. СПб.: Невский Диалект, 1998.
    2. Страуструп Б. Язык программирования С++, 3-е изд. СПб.: Невский Диалект, 1999.
    3. Страуструп Б. Дизайн и эволюция С++. М.: ДМК Пресс, 2000.