This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:object_oriented_programming:lectures [2017/02/16 13:33] kalishenko |
courses:object_oriented_programming:lectures [2022/12/10 09:08] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Программа ====== | + | ====== Материалы лекций ====== |
- | ===== 1. Введение ===== | + | |
- | - Объектно-ориентрованный подход | + | |
- | - Содержание курса | + | |
- | - История ОО языков | + | |
- | ===== 2. Структуры и классы ===== | + | - {{ :courses:object_oriented_programming:lecture_1_c_and_c_.ppt |Введение}} |
- | - Инкапсуляция | + | - {{ :courses:object_oriented_programming:lecture_2_structures_and_classes_.pptx |Структуры и классы}} |
- | - Поля и методы | + | - {{ :courses:object_oriented_programming:lecture_3_constructors_destructors_.pptx |Создание и разрушение объектов}} |
- | - Права доступа | + | - {{ :courses:object_oriented_programming:lecture_4_exceptions_.pptx |Исключения}} |
- | - Определение класса в h, .hpp и в .cpp | + | - {{ :courses:object_oriented_programming:lecture_5_class_relations_.pptx |Связность объектов}} |
+ | - {{ :courses:object_oriented_programming:lecture_6_inheritance_.pptx |Виды наследования}} | ||
+ | - {{ :courses:object_oriented_programming:lecture_7_smart_pointers_.pptx |Умные указатели}} | ||
+ | - {{ :courses:object_oriented_programming:lecture_8_operators_overloading_.pptx |Перегрузка операторов}} | ||
+ | - {{ :courses:object_oriented_programming:lecture_9_templates_.pptx |Шаблоны функций и классов}} | ||
+ | - [[https://refactoring.guru/ru/design-patterns|Шаблоны проектирования]] | ||
- | ===== 3. Создание и разрушение объектов ===== | ||
- | - Конструкторы (с move версиями) | ||
- | - Деструкторы | ||
- | - malloc/free и new/delete | ||
- | - RAII | ||
- | |||
- | ===== 4. Связность объектов ===== | ||
- | - Наследование | ||
- | - Агрегирование | ||
- | - Дружественность | ||
- | |||
- | ===== 5. Полиморфизм ===== | ||
- | - Переопределение и перегрузка функций | ||
- | - Mock-объекты при использовании интерфейсов | ||
- | - Динамический полиморфизм | ||
- | - RTTI | ||
- | |||
- | ===== 6. Умные указатели ===== | ||
- | - scoped_ptr | ||
- | - shared_ptr | ||
- | - weak_ptr | ||
- | - intrusive_ptr | ||
- | |||
- | ===== 7. Перегрузка операторов ===== | ||
- | - Приоритет операций | ||
- | - Какие операторы можно перегружать | ||
- | - Перегрузка &&, ||, ‘,’ | ||
- | - Перегрузка [] и () | ||
- | |||
- | ===== 8. Виды наследования ===== | ||
- | - Одиночное | ||
- | - Множественное | ||
- | - Виртуальное | ||
- | |||
- | ===== 9. Шаблоны функций и классов ===== | ||
- | - Вывод шаблонных параметров из аргументов функций | ||
- | - Компиляция шаблонов | ||
- | - SFINAE | ||
- | |||
- | ===== 10. Частичная специализация шаблонов* ===== | ||
- | - Частичная специализация | ||
- | - Статический полиморфизм | ||
- | - Использование зависимых имён (использование typename) | ||
- | |||
- | ===== 11. Исключения ===== | ||
- | - Стандартные типы исключений | ||
- | - Стратегии обработки исключений | ||
- | - Исключения в констуркторе / деструкторе | ||
- | |||
- | ===== 12. Стиль кодирования ===== | ||
- | - Советы по разработке понятного кода | ||
- | - Важность константности | ||
- | |||
- | ~~DISCUSSION~~ |