User Tools

Site Tools


Sidebar






Old

courses:object_oriented_programming:lectures

This is an old revision of the document!


Программа

1. Введение

  1. Объектно-ориентрованный подход
  2. Содержание курса
  3. История ОО языков

2. Структуры и классы

  1. Инкапсуляция
  2. Поля и методы
  3. Права доступа
  4. Определение класса в h, .hpp и в .cpp

3. Создание и разрушение объектов

  1. Конструкторы (с move версиями)
  2. Деструкторы
  3. malloc/free и new/delete
  4. RAII

4. Исключения

  1. Стандартные типы исключений
  2. Стратегии обработки исключений
  3. Исключения в констуркторе / деструкторе

5. Связность объектов

  1. Наследование
  2. Агрегирование
  3. Дружественность
  4. Диаграмма классов

6. Полиморфизм

  1. Переопределение и перегрузка функций
  2. Mock-объекты при использовании интерфейсов
  3. Динамический полиморфизм
  4. RTTI

7. Виды наследования

  1. Одиночное
  2. Множественное
  3. Виртуальное

8. Умные указатели

  1. scoped_ptr
  2. shared_ptr
  3. weak_ptr
  4. intrusive_ptr

9. Перегрузка операторов

  1. Приоритет операций
  2. Какие операторы можно перегружать
  3. Перегрузка &&, ||, ‘,’
  4. Перегрузка [] и ()

10. Шаблоны функций и классов

  1. Вывод шаблонных параметров из аргументов функций
  2. Ленивая компиляция шаблонов
  3. Использование зависимых имён
  4. Наследование шаблонных классов

11. Шаблоны функций и классов - 2

  1. Полная специализация шаблонов
  2. Классы свойств (Traits)
  3. Частичная специализация шаблонов
  4. Статический полиморфизм VS динамический полиморфизм на примере паттерна стратегия

12. Стиль кодирования

  1. Советы по разработке понятного кода
  2. Важность константности
courses/object_oriented_programming/lectures.1495445113.txt.gz · Last modified: 2022/12/10 09:08 (external edit)