Курс представляет собой
краткий аннотированный обзор современного стандарта языка С++. Рассматриваются как классические вопросы, такие как реализация принципов ООП средствами языка, так и относительно новые, связанные со Стандартной библиотекой шаблонов (STL) и многопоточным программированием.
Курс ориентирован:
на разработчиков, владеющих одним из современных языков программирования: C, Pascal (Delphi) и др, и желающих профессионально овладеть языком С++ . Желательно (но не обязательно) знакомство с основными принципами Объектно-ориентированного программирования и шаблонами проектирования.
Предварительный уровень подготовки:
-
Владение одним из современных процедурных языков программирования в размере университетского курса "Языки и технологии программирования".
- Знакомство с принципами объектно-ориентированного программирования (желательно).
Продолжительность курса: 6 дней (48 аудиторных часoв).
Методический материал:
- Страуструп Б. Язык программирования С++ (спец. издание) - С.-Пб. Невский диалект. 2001.
- Аммераль Л. STL для программистов на С++ - М.: ДМК, 1999
- Майерс С. Эффектиное использование STL. Библиотека программиста - С.-Пб., Питер. 2002
Содержание курса:
1 День
Глава 1. Введение
- краткая история С++
- парадигмы программирования: процедурный и объектно-ориентирванный подход
- введение в STL
Глава 2. Обзор типов языка
- встроенные типы
- создание собственных типов, оператор typedef
- классы и структуры
Глава 3. Массивы и указатели
- указатели
- массивы
- указатели на массивы
Глава 4. Операторы и выражения
- выражения и операции
- основные операторы языка
2 День
Глава 5. Функции
- объявление функции
- передача параметров и возврат значений
- перегрузка функции
- аргументы "по умолчанию"
- переменное количество аргументов
- указатели на функцию и переменные типа "указатель на функцию". Таблицы виртуальных функций.
- Макросы
- Лабораторная работа.
Глава 6. Пространства имен
Глава 7. Исключения
- тройка try - catch - throw
3 День
Глава 8. Раздельная компиляция и компоновка, заголовочные файлы
- компоновка
Глава 9. Классы
- обзор терминологии
- "поля, методы и свойства" vs "переменных-членов и функций-членов"
- управление правами доступа
- конструкторы
- статические методы
- деструкторы
- еще раз о понятиях "класс" и "структура"
Глава 10. Классы: перегрузка операций
- о связи типов и операций над ними
- операции и функции
- перегрузка унарных и бинарных операций
- перегрузка специальных операций: "смарт-казатели", "индексеры", "функционвльные объекты"
- более тонкое распределение прав доступа: дружественные функции и классы
4 день
Глава 11. О трех знаменитых шаблонах ООП
- введение в шаблон "наследование" и его реализацию средствами С++
- полиморфизм и указатели
- преобразование типов
- виртуальные функции
- введение в COM
- Лабораторная работа
Глава 12. Шаблоны-функции и шаблоны-классы
- определение шаблонов-функций
- использование шаблонов-функций
- определение шаблонов-классов
- использование шаблонов-классов
- обзор известных библиотек шаблонов.
- Лабораторная работа
5 День
Глава 13. Исключения
- группировка исключений
- перехват и регенерация исключений
- управление ресурсами: исключения в конфтрукторах и деструкторах
- необработанные исключения
- альтернативные методы обработки исключительных ситуаций, производительность
Глава 14. Иерархии классов
- введение
- множественное наследование
- виртуальные базовые классы
- снова об управлении доступом: защищенные поля и методы
- информация о типе и операторы преобразования типов
Глава 15. Стандартная библиотека шаблонов (STL)
- векторы
- стандартные контейнеры
- ассоциативные контейнеры
- "почти" контейнеры
- алгоритмы и функциональные объекты
- итераторы и распределители памяти
- потоки (ввода-вывода)
- численные алгоритмы.
- Лабораторная работа.
6 день
Глава 16. Многопоточное программирование под Windows
- обзор основных объектов ядра Windows: процессы, потоки, кучи, стеки, объекты синхронизации
- функции ядра Windows, предназначенные для управления потоками: CreateThread, TerminateThread, ResumeThread, и.т.д.
- функции runtime-библиотеки Microsoft VC , предназначенные для управления потоками: _beginthread, _beginthreadex, и.т.д.
- синхронизация потоков (и процессов) теория и реализация средствами ядра Windows: (события, семафоры, мьютексы и другие объекты ядра)
|