This shows you the differences between two versions of the page.
courses:object_oriented_programming:lectures [2017/05/22 09:25] isudakov [11. Cпециализация шаблонов] |
courses:object_oriented_programming:lectures [2022/12/10 09:08] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Программа ====== | ||
- | ===== 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. Шаблоны функций и классов ===== | ||
- | - Вывод шаблонных параметров из аргументов функций | ||
- | - Ленивая компиляция шаблонов | ||
- | - Использование зависимых имён | ||
- | - Наследование шаблонных классов | ||
- | |||
- | ===== 11. Шаблоны функций и классов - 2 ===== | ||
- | - Полная специализация шаблонов | ||
- | - Классы свойств (Traits) | ||
- | - Частичная специализация шаблонов | ||
- | - Статический полиморфизм VS динамический полиморфизм на примере паттерна стратегия | ||
- | |||
- | |||
- | ===== 12. Стиль кодирования ===== | ||
- | - Советы по разработке понятного кода | ||
- | - Важность константности | ||
- | |||
- | ~~DISCUSSION~~ |