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