Skip to content

Latest commit

 

History

History
168 lines (139 loc) · 5.32 KB

File metadata and controls

168 lines (139 loc) · 5.32 KB

Лекции

Записи лекций и некоторых семинаров выкладываются здесь.

Лекция 1 - 10.01.2023

  • Общая информация о курсе
  • Правила оценивания
  • Репозитории и система сдачи заданий
  • Базовое использование IDE

Лекция 2 - 12.01.2023

  • cppreference.com
  • Простейшая программа на C++
  • Компиляция в командной строке
  • Функция main
  • Консольный ввод-вывод
  • Объявление и инициализация переменных
  • Базовые элементы синтаксиса
    • {}
    • if, else
    • for
    • while, do ... while
    • continue, break
    • switch ... case
  • Операторы
    • Арифметические; префиксный и постфиксные версии ++ и --
    • %
    • << >>
    • &&, ||, &, |, ^
    • ... ? ... : ...

Лекция 3 - 18.01.2023

  • Типизация
    • Статическая / динамическая
    • Сильная / слабая
  • Целочисленные типы и гарантии на их размеры
  • Знаковые и беззнаковые типы
  • Числа с плавающей запятой
  • Операции с различными примитивными типами
  • Числовые литералы
  • std::numeric_limits и CHAR_BIT
  • Ключевое слово auto

Лекция 4 - 20.01.2023

  • Функции
  • Константность
  • Ссылки
  • Указатели

Лекция 5 - 25.01.2023

  • Массивы
    • Связь массивов и указателей
    • Арифметика указателей
    • size_t, ptrdiff_t
  • С-строки
    • strcmp, strncmp
  • std::string
  • std::string_view

Лекция 6 - 27.01.2023

  • Структуры
    • Инициализация структур
    • std::pair, std::tuple
    • std::tie
    • Structured binding
  • Последовательные контейнеры
    • std::vector
    • std::array
    • Итераторы и range-based for

Лекция 7 - 01.02.2023

  • Последовательные контейнеры (продолжение)
    • std::list, std::forward_list
    • std::deque
  • Ассоциативные контейнеры
    • std::map, std::set
    • std::unordered_map, std::unordered_set
  • Адаптеры
    • std::stack
    • std::queue
    • std::priority_queue

Лекция 8 - 03.02.2023

  • Классы
    • Поля
    • Методы
      • const, mutable
      • Статические методы
    • Конструкторы
      • explicit
      • Списки инициализации
      • Делегирующие конструкторы
    • Деструкторы
    • Модификаторы доступа
      • friend
    • this

Лекция 9 - 08.02.2023

  • Конструктор копирования и оператор присваивания
    • Rule of 3
  • Перегрузка операторов
    • Операторы-члены класса
    • Операторы-свободные фукции
    • Операторы сравления, <=>
    • Операторы приведения типов explicit

Лекция 10 - 10.02.2023

  • Виды памяти
    • Автоматическая
    • Статическая
    • Динамическая
      • new/delete и new[]/delete[]
    • Умные указатели
      • std::unique_ptr
      • std::shared_ptr
      • std::weak_ptr

Лекция 11 - 15.02.2023

  • Препроцессор
    • Директивы препроцессора #include, #define
    • Защита от повторного включения заголовочного файла #ifndef ... #define, #pragma once
  • Разделение программы на файлы
    • Раздельная компиляция
    • Разделение функций и классов на .h и .cpp файлы
  • Виды линковки
    • Внешнее и внутреннее связываение
    • static, const, extern, inline в контексте управления связыванием

Лекция 12 - 18.02.2023

  • КР1

Лекция 13 - 22.02.2023

  • Области видимости (scope)
  • Неймспейсы
    • Безымянные неймспейсы
    • using namespace, using Foo
  • Qualified и unqualified name lookup, ADL
  • Forward declaration
  • Алиасы типов - typedef и using
  • Локальные классы
  • enum, enum class

Лекция 14 - 01.02.2023

  • Наследование
    • Виртуальный полиморфизм
    • Ключевые слова virtual и override
    • Таблица виртуальных функций __vfptr
    • Жизненный цикл полиморфного объекта
      • Виртуальный деструктор
      • Вызов виртуального метода из конструктора или деструктора
    • Чисто виртуальные методы
    • Абстрактные классы и интерфейсы
    • dynamic_cast