Обучение языку C++, часть 1
Санкт-Петербург, осень 2019
Описание
Программа ориентирована на студентов, имеющих хотя бы небольшой опыт процедурного программирования, предпочтительно на языке со строгой типизацией.
План курса
- Организация разработки программ на С++
- Компоновка программ. Единицы трансляции. Объявления и определения. ODR. Глобальные/локальные переменные.
- Работа с памятью. Указатели, массивы и ссылки.
- Встроенные типы. Инструкции и операторы. Приведение типов.
- Функции. Передача параметров, возврат значений. Перегрузки. Анонимные. Bind & function. Конвенции вызова.
- Классы. Функции-члены. 4 главных функции-члены. Swap-trick. Поля класса.
- Переопределение операторов. Пространства имен.
- Динамический полиморфизм (простое наследование).
- Динамический полиморфизм (множественное и виртуальное наследование).
- Стратегии обработки ошибок. Исключения.
- Введение в обобщенное программирование. Шаблоны функций и классов.
- Специализации шаблонов. Связь с динамическим полиморфизмом.
- RAII. Умные указатели.
Отчётность по курсу
Финальная оценка формируется из:
- оценок за домашние задания,
- баллов за тесты, которые периодически проводятся в начале лекций.
В семестр планируется три домашних задания, но они будут довольно объёмными. При сдаче домашнего задания проверяется не только работоспособность кода, но и его качество.
Полезная литература
- Б. Му. Эффективное программирование на С++
- С. Мейерс. Эффективный и современный С++: 42 рекомендации по использованию С++11 и С++14
Преподаватели

Валерий Михайлович Лесин
Читает лекции

Егор Валерьевич Башарин
Ведёт семинары

Роман Евгеньевич Голышев
Ведёт семинары

Филипп Николаевич Грабовой
Ведёт семинары

Евгений Андреевич Полевиков
Проверяет задания

Владимир Владимирович Руцкий
Проверяет задания

Сергей Георгиевич Шульман
Проверяет задания

Максим Юрьевич Щербаков
Проверяет задания

Сергей Владимирович Яскевич
Проверяет задания