Обучение языку C++, часть 1

Санкт-Петербург, осень 2018

Описание

Программа ориентирована на студентов, имеющих хотя бы небольшой опыт процедурного программирования, предпочтительно на языке со строгой типизацией.

План курса

  1. Организация разработки программ на С++
  2. Компоновка программ. Единицы трансляции. Объявления и определения. ODR. Глобальные/локальные переменные.
  3. Работа с памятью. Указатели, массивы и ссылки.
  4. Встроенные типы. Инструкции и операторы. Приведение типов.
  5. Функции. Передача параметров, возврат значений. Перегрузки. Анонимные. Bind & function. Конвенции вызова.
  6. Классы. Функции-члены. 4 главных функции-члены. Swap-trick. Поля класса.
  7. Переопределение операторов. Пространства имен.
  8. Динамический полиморфизм (простое наследование).
  9. Динамический полиморфизм (множественное и виртуальное наследование).
  10. Стратегии обработки ошибок. Исключения.
  11. Введение в обобщенное программирование. Шаблоны функций и классов.
  12. Специализации шаблонов. Связь с динамическим полиморфизмом.
  13. RAII. Умные указатели.

Отчётность по курсу

Финальная оценка формируется из:

  • оценок за домашние задания,
  • баллов за тесты, которые периодически проводятся в начале лекций.

В семестр планируется три домашних задания, но они будут довольно объёмными. При сдаче домашнего задания проверяется не только работоспособность кода, но и его качество.

Полезная литература

  1. Б. Му. Эффективное программирование на С++
  2. С. Мейерс. Эффективный и современный С++: 42 рекомендации по использованию С++11 и С++14

Преподаватели