Расширенные основы программирования
ВАЖНО!
Эта тема нужна только тем, кто хочет пользоваться стандартными контейнерами
(std::vector, std::unordered_map) и std::string, а также тем, кому её явно
поручили изучить или кто просто хочет узнать больше.
Эта тема расширяет предыдущую тему основ программирования: в ней разбираются RAII, семантика перемещения, некоторые элементы ООП и другие возможности C++.
Рассматриваемые понятия:
- Ссылки (
&) - Методы,
this - Статические (
static) члены класса - Области видимости, деструкторы
- Владение памятью — идея RAII
std::unique_ptrиstd::shared_ptr- Собственная реализация
std::vectorс RAII - Константные (
const) параметры и методы - Конструкторы, конструкторы копирования
- lvalues и rvalues
- Семантика перемещения (rvalue-ссылки
&&,std::move, конструкторы перемещения) - Основы шаблонов
- Строки: C-строки,
std::string,std::string_view - Указатели на функции,
typedef,auto,decltype - Хранение данных вместе с функциями для реализации делегатов,
std::function