Записи лекций и некоторых семинаров выкладываются здесь.
- Общая информация о курсе
- Правила оценивания
- Репозитории и система сдачи заданий
- Базовое использование IDE
- cppreference.com
- Простейшая программа на C++
- Компиляция в командной строке
- Функция
main - Консольный ввод-вывод
- Объявление и инициализация переменных
- Базовые элементы синтаксиса
{}if,elseforwhile,do ... whilecontinue,breakswitch ... case
- Операторы
- Арифметические; префиксный и постфиксные версии
++и-- %<<>>&&,||,&,|,^... ? ... : ...
- Арифметические; префиксный и постфиксные версии
- Типизация
- Статическая / динамическая
- Сильная / слабая
- Целочисленные типы и гарантии на их размеры
- Знаковые и беззнаковые типы
- Числа с плавающей запятой
- Операции с различными примитивными типами
- Числовые литералы
std::numeric_limitsиCHAR_BIT- Ключевое слово
auto
- Функции
- Константность
- Ссылки
- Указатели
- Массивы
- Связь массивов и указателей
- Арифметика указателей
size_t,ptrdiff_t
- С-строки
strcmp,strncmp
std::stringstd::string_view
- Структуры
- Инициализация структур
std::pair,std::tuplestd::tie- Structured binding
- Последовательные контейнеры
std::vectorstd::array- Итераторы и range-based for
- Последовательные контейнеры (продолжение)
std::list,std::forward_liststd::deque
- Ассоциативные контейнеры
std::map,std::setstd::unordered_map,std::unordered_set
- Адаптеры
std::stackstd::queuestd::priority_queue
- Классы
- Поля
- Методы
const,mutable- Статические методы
- Конструкторы
explicit- Списки инициализации
- Делегирующие конструкторы
- Деструкторы
- Модификаторы доступа
friend
this
- Конструктор копирования и оператор присваивания
- Rule of 3
- Перегрузка операторов
- Операторы-члены класса
- Операторы-свободные фукции
- Операторы сравления,
<=> - Операторы приведения типов
explicit
- Виды памяти
- Автоматическая
- Статическая
- Динамическая
new/deleteиnew[]/delete[]
- Умные указатели
std::unique_ptrstd::shared_ptrstd::weak_ptr
- Препроцессор
- Директивы препроцессора
#include,#define - Защита от повторного включения заголовочного файла
#ifndef ... #define,#pragma once
- Директивы препроцессора
- Разделение программы на файлы
- Раздельная компиляция
- Разделение функций и классов на .h и .cpp файлы
- Виды линковки
- Внешнее и внутреннее связываение
static,const,extern,inlineв контексте управления связыванием
- КР1
- Области видимости (scope)
- Неймспейсы
- Безымянные неймспейсы
using namespace,using Foo
- Qualified и unqualified name lookup, ADL
- Forward declaration
- Алиасы типов -
typedefиusing - Локальные классы
enum,enum class
- Наследование
- Виртуальный полиморфизм
- Ключевые слова
virtualиoverride - Таблица виртуальных функций
__vfptr - Жизненный цикл полиморфного объекта
- Виртуальный деструктор
- Вызов виртуального метода из конструктора или деструктора
- Чисто виртуальные методы
- Абстрактные классы и интерфейсы
dynamic_cast