This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
courses:object_oriented_programming:lectures [2017/05/22 18:39] kalishenko |
courses:object_oriented_programming:lectures [2017/05/29 13:34] nplohoy |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Программа ====== | + | ====== Материалы лекций ====== |
===== 1. Введение ===== | ===== 1. Введение ===== | ||
- | - Объектно-ориентрованный подход | + | |
- | - Содержание курса | + | |
- | - История ОО языков | + | |
===== 2. Структуры и классы ===== | ===== 2. Структуры и классы ===== | ||
- | - Инкапсуляция | + | |
- | - Поля и методы | + | |
- | - Права доступа | + | |
- | - Определение класса в h, .hpp и в .cpp | + | |
===== 3. Создание и разрушение объектов ===== | ===== 3. Создание и разрушение объектов ===== | ||
- | - Конструкторы (с move версиями) | ||
- | - Деструкторы | ||
- | - malloc/free и new/delete | ||
- | - RAII | ||
===== 4. Исключения ===== | ===== 4. Исключения ===== | ||
- | - Стандартные типы исключений | ||
- | - Стратегии обработки исключений | ||
- | - Исключения в констуркторе / деструкторе | ||
===== 5. Связность объектов ===== | ===== 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) | ||
+ | ===== 6. Виды наследования ===== | ||
+ | | ||
+ | ===== 7. Умные указатели ===== | ||
+ | | ||
+ | ===== 8. Перегрузка операторов ===== | ||
+ | | ||
+ | ===== 10. Шаблоны функций и классов ===== | ||
+ | | ||
+ | ===== 11. Шаблоны проектирования ===== | ||
- | ===== 13. Стиль кодирования ===== | + | [[https://refactoring.guru/ru/design-patterns|refactoring.guru]] |
- | - Советы по разработке понятного кода | + | |
- | - Важность константности | + | |
~~DISCUSSION~~ | ~~DISCUSSION~~ |