/Object-oriented_programming_FMI

Repository with examples for the "Object-oriented programming" course given by me at Faculty of Mathematics and Informatics, Sofia University

Primary LanguageC++MIT LicenseMIT

Материали от семинарите и практикумите по "Обектно-ориентирано програмиране"

Летен семестър 2023/2024, спец. Софтуерно инженерство и Информационни системи

  • Тема 1: Преговор на указатели, референции и динамична памет. Увод в ООП. Енумерации. Структури и обединения. Инстанции и обекти. Представяния в паметта. Работа с функции, които приемат инстанции/обекти.
  • Тема 2: Потоци и Файлове (част 1). Текстови файлове.
  • Тема 3: Потоци и Файлове (част 2). Двоични файлове.
  • Тема 4: Член-функции. Жизнен цикъл на обект. Конструктори и деструктор. Капсулация. Модификатори за достъп. Член-функции get и set.
  • Тема 5: Разделна компилация .h .cpp. Композиция и агрегация. Копиращ конструктор и оператор=. Извикване на конструктор, деструктор, копиращ конструктор, оператор= при композиция.
  • Тема 6: Голямата четворка (Rule of four)
  • Тема 7: Предефиниране на оператори. Приятелски класове и функции.
  • Тема 8: Ключова дума static. Изключения. Масиви от указатели към обекти.
  • Тема 9: Масиви от указатели към обекти. Move семантики.
  • Тема 10: Наследяване.
  • Тема 11: Статично и динамично свързване. Виртуални функции. Полиморфизъм. Абстрактни класове. Ключови думи - override, final. Виртуални таблици.
  • Тема 12: Колекции от обекти в полиморфна йерархия. Копиране, триене, разпознаване и прихващане. Шаблони.
  • Тема 13: Шаблони. Множествено наследяване. Виртуално наследяване. Виртуални таблици при множествено и виртуално наследяване. Диамантен проблем. Бонус - Cpp Insights.
  • Тема 14: Дървовидна структура от обекти от полиморфна йерархия.
  • Тема 15: Type casting. SOLID принципи. Въведение в Design Patterns.

Допълнителни материали

Материали от минали години