courses:object_oriented_programming:list
Содержание
Программа
1. Введение
- Объектно-ориентрованный подход
- Содержание курса
- История ОО языков
2. Структуры и классы
- Инкапсуляция
- Поля и методы
- Права доступа
- Определение класса в h, .hpp и в .cpp
3. Создание и разрушение объектов
- Конструкторы (с move версиями)
- Деструкторы
- malloc/free и new/delete
- RAII
4. Исключения
- Стандартные типы исключений
- Стратегии обработки исключений
- Исключения в констуркторе / деструкторе
5. Связность объектов
- Наследование
- Агрегирование
- Дружественность
- Диаграмма классов
6. Полиморфизм
- Переопределение и перегрузка функций
- Mock-объекты при использовании интерфейсов
- Динамический полиморфизм
- RTTI
7. Виды наследования
- Одиночное
- Множественное
- Виртуальное
8. Умные указатели
- scoped_ptr
- shared_ptr
- weak_ptr
- intrusive_ptr
9. Перегрузка операторов
- Приоритет операций
- Какие операторы можно перегружать
- Перегрузка &&, ||, ‘,’
- Перегрузка [] и ()
10. Шаблоны функций и классов - 1
- Вывод шаблонных параметров из аргументов функций
- Ленивая компиляция шаблонов
- Использование зависимых имён
- Наследование шаблонных классов
11. Шаблоны функций и классов - 2
- Полная специализация шаблонов
- Классы свойств (Traits)
- Частичная специализация шаблонов
- Статический полиморфизм VS динамический полиморфизм на примере паттерна стратегия
12. Шаблоны функций и классов - 3
- Метапрограммирование с использованием шаблонов
- SFINAE
- С++11 (using вместо typedef в шаблонах, variadic templates)
13. Шаблоны проектирования
- Область применения шаблонов
- Порождающие паттерны
- Структурные паттерны
- Поведенческие паттерны
Только авторизованные участники могут оставлять комментарии.