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