Обучение языку C++, часть 1
Санкт-Петербург, осень 2019
Описание
Программа ориентирована на студентов, имеющих хотя бы небольшой опыт процедурного программирования, предпочтительно на языке со строгой типизацией.
План курса
- Организация разработки программ на С++
- Компоновка программ. Единицы трансляции. Объявления и определения. ODR. Глобальные/локальные переменные.
- Работа с памятью. Указатели, массивы и ссылки.
- Встроенные типы. Инструкции и операторы. Приведение типов.
- Функции. Передача параметров, возврат значений. Перегрузки. Анонимные. Bind & function. Конвенции вызова.
- Классы. Функции-члены. 4 главных функции-члены. Swap-trick. Поля класса.
- Переопределение операторов. Пространства имен.
- Динамический полиморфизм (простое наследование).
- Динамический полиморфизм (множественное и виртуальное наследование).
- Стратегии обработки ошибок. Исключения.
- Введение в обобщенное программирование. Шаблоны функций и классов.
- Специализации шаблонов. Связь с динамическим полиморфизмом.
- RAII. Умные указатели.
Отчётность по курсу
Финальная оценка формируется из:
- оценок за домашние задания,
- баллов за тесты, которые периодически проводятся в начале лекций.
В семестр планируется три домашних задания, но они будут довольно объёмными. При сдаче домашнего задания проверяется не только работоспособность кода, но и его качество.
Полезная литература
- Б. Му. Эффективное программирование на С++
- С. Мейерс. Эффективный и современный С++: 42 рекомендации по использованию С++11 и С++14
Преподаватели
![](https://storage.yandexcloud.net/lms-vault/media/cache/95/1a/951ae05d15f9fba29619aaf2ba17f65b.jpg)
Валерий Михайлович Лесин
Читает лекции
![](https://storage.yandexcloud.net/lms-vault/media/cache/3a/e3/3ae36b78626b36e0c5d483fcf087b614.jpg)
Егор Валерьевич Башарин
Ведёт семинары
![](https://storage.yandexcloud.net/lms-vault/media/cache/7c/5a/7c5a08b12899866c7edcd40f4b447846.jpg)
Роман Евгеньевич Голышев
Ведёт семинары
![](https://storage.yandexcloud.net/lms-vault/media/cache/49/96/499645821840b6b126db0d2654ee5d9f.jpg)
Филипп Николаевич Грабовой
Ведёт семинары
![](/static/v2/img/placeholder/man.8bd96a9fcb5e.png)
Евгений Андреевич Полевиков
Проверяет задания
![](https://storage.yandexcloud.net/lms-vault/media/cache/94/0b/940b3cac375937c17fe26b6fbce15802.jpg)
Владимир Владимирович Руцкий
Проверяет задания
![](https://storage.yandexcloud.net/lms-vault/media/cache/01/66/01664558b39f17d6ff3541e889d54286.jpg)
Сергей Георгиевич Шульман
Проверяет задания
![](https://storage.yandexcloud.net/lms-vault/media/cache/cd/78/cd78e0c09790afc5ed742113180ef92d.jpg)
Максим Юрьевич Щербаков
Проверяет задания
![](https://storage.yandexcloud.net/lms-vault/media/cache/3e/25/3e25b83d765ef785ba5eea3188e56109.jpg)
Сергей Владимирович Яскевич
Проверяет задания