This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
courses:object_oriented_programming:lectures [2017/03/02 08:01] kalishenko |
courses:object_oriented_programming:lectures [2017/06/28 21:50] kalishenko |
||
---|---|---|---|
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 |Виды наследования}} | |
- | ===== 3. Создание и разрушение объектов ===== | + | - {{ :courses:object_oriented_programming:lecture_7_smart_pointers_.pptx |Умные указатели}} |
- | - Конструкторы (с move версиями) | + | - {{ :courses:object_oriented_programming:lecture_8_operators_overloading_.pptx |Перегрузка операторов}} |
- | - Деструкторы | + | - {{ :courses:object_oriented_programming:lecture_9_templates_.pptx |Шаблоны функций и классов}} |
- | - malloc/free и new/delete | + | - [[https://refactoring.guru/ru/design-patterns|Шаблоны проектирования]] |
- | - RAII | + | |
- | + | ||
- | ===== 4. Исключения ===== | + | |
- | - Стандартные типы исключений | + | |
- | - Стратегии обработки исключений | + | |
- | - Исключения в констуркторе / деструкторе | + | |
- | + | ||
- | ===== 5. Связность объектов ===== | + | |
- | - Наследование | + | |
- | - Агрегирование | + | |
- | - Дружественность | + | |
- | - Диаграмма классов | + | |
- | + | ||
- | ===== 6. Полиморфизм ===== | + | |
- | - Переопределение и перегрузка функций | + | |
- | - Mock-объекты при использовании интерфейсов | + | |
- | - Динамический полиморфизм | + | |
- | - RTTI | + | |
- | + | ||
- | ===== 7. Шаблоны функций и классов ===== | + | |
- | - Вывод шаблонных параметров из аргументов функций | + | |
- | - Компиляция шаблонов | + | |
- | + | ||
- | ===== 8. Умные указатели ===== | + | |
- | - scoped_ptr | + | |
- | - shared_ptr | + | |
- | - weak_ptr | + | |
- | - intrusive_ptr | + | |
- | + | ||
- | ===== 9. Перегрузка операторов ===== | + | |
- | - Приоритет операций | + | |
- | - Какие операторы можно перегружать | + | |
- | - Перегрузка &&, ||, ‘,’ | + | |
- | - Перегрузка [] и () | + | |
- | + | ||
- | ===== 10. Виды наследования ===== | + | |
- | - Одиночное | + | |
- | - Множественное | + | |
- | - Виртуальное | + | |
- | + | ||
- | ===== 11. Частичная специализация шаблонов* ===== | + | |
- | - Частичная специализация | + | |
- | - Статический полиморфизм | + | |
- | - Использование зависимых имён (использование typename) | + | |
- | - SFINAE | + | |
- | + | ||
- | ===== 12. Стиль кодирования ===== | + | |
- | - Советы по разработке понятного кода | + | |
- | - Важность константности | + | |
~~DISCUSSION~~ | ~~DISCUSSION~~ |