Развернуть
- Стандартные потоки ввода / вывода (
standard input / output streams).
- Манипуляторы (
manipulators).
- Файловый поток (
std::fstream).
- Строковый поток (
std::stringstream).
std::string.
- Итераторы (
iterators).
auto & range-based for-loop.
Развернуть
- Виртуальный деструктор (
virtual destructor).
- Спецификатор
final.
- Спецификатор
override.
- Абстрактный класс (
abstract class).
- Модификаторы доступа (
access modifiers).
- Спецификатор
friend.
- Отличия
struct и class.
- Пространство имен (
namespace).
- Перегрузка операторов (
operators overloading).
- Правило трех (
rule of three).
- Спецификаторы
default и delete.
- Аргументы по умолчанию (
default arguments).
Развернуть
- Список инициализации (
member initializer list)
- Делегирующие конструкторы (
delegating constructors).
- Порядок инициализации.
- Ссылки (
reference).
- Композиция (
composition).
- Наследование (
inheritance).
- Множественное наследование (
multiple inheritance).
- "Dreaded diamond".
- Виртуальное наследование (
virtual inheritance).
- Виртуальные функции (
virtual functions).
Развернуть
- Сравнение языков C & C++ на примере stack'а .
- Конструктор (
constructor), деструктор (destructor), методы (methods).
- Что скрывает компилятор?
- Keyword
this.
new / delete vs malloc / free.
- Реализация
new / delete на С.
- Статические члены класса (
static members).
Inline функции.
- Перегрузка функций (
function overloading).
- Mangling.
- Введение в наследование (
inheritance).
- Реализация наследования на С.
Развернуть
- Motivation for templates.
- How it work? Instantiation.
- Template argument deduction from a function call.
- Class templates.
- Function templates specialization.
- Class templates specialization.
- Member templates.
- Traits classes.
- Policy classes.
- Functors from
<functional>. std::bind.
- Lambda-expression.
- SFINAE.
- Iterator implementation until and since C++17.
Развернуть
- Принцип разделения интерфейса (ISP).
- SOLID.
- Проектирование для задачи линейной аппроксимации набора точек.
Развернуть
- Графическая нотация для отношений.
- Пример: проектирование программы форматирования текста.
- Принцип подстановки Лискоу (LSP).
- Принцип инверсии зависимостей (DIP).
Развернуть
- Наследование.
- Композиция. Выбор между композицией и наследованием.
- Агрегация. Разница между композицией и агрегацией.
- Ассоциация.
- Пример замены композиции на ассоциацию.
- Принцип открытия-закрытия (OCP).
- Как вносить изменения, не нарушая принцип OCP? Выделение абстракции.
Развернуть
- Общие требования к классам (декомпозиция, модульная композиция, модульная понятность, модульная непрерывность, модульная защищённость).
- Простая и незамысловатая реализация программы вычисления медиан.
- Реализация с одним большим классом.
- Принцип одной зоны ответственности (Single Responsibility Principle, SRP).
- Разнесение зон ответственности через структуры данных. Функциональный подход.
- Разделение вычисления медиан на классы Parser и MediansMedian.
- Альтернативное разделение на классы: Parser, ParserClient и MediansMedian. «Активные» и «пассивные» классы.
Развернуть
- Abnormal program termination.
- Return error codes.
- Macro
errno.
try/catch/throw.
- Using objects as exceptions.
- Exception specifications.
- Unwinding stack.
- More exception features.
RAII.
- Exceptions in constructors.
- Best practices.
Действия