Sari la conținut
Modulul 2

Object-Oriented C++

Classes, objects, inheritance, polymorphism, and the pillars of OOP in C++.

Classes & Objects

  1. Classes, Structs & Encapsulation

    Understand the difference between struct and class, access specifiers, encapsulation, const member functions, static members, and modern aggregate initialization.

  2. Constructori, destructori și regula 0/3/5

    Stăpânește întregul ciclu de viață al obiectelor C++ – de la construcție până la distrugere – și învață când să scrii (sau să nu scrii) funcții membre speciale.

  3. Semantică de copiere: Deep vs Shallow

    Aflați diferența dintre copiile superficiale și cele profunde, cum să implementați operațiunile corecte de copiere pentru clasele care dețin resurse și expresia de copiere și schimb.

Inheritance & Polymorphism

  1. Inheritance & Is-A Relationships

    Learn public inheritance, constructor chaining, the slicing problem, multiple inheritance, and the diamond problem — and when inheritance is appropriate.

  2. Funcții virtuale, vtable și polimorfism

    Pătrundeți-vă în polimorfismul runtime: cum funcționează dispeceratul virtual sub capotă, când să utilizați clasele de suprascriere și finale, abstracte și RTTI.

  3. Supraîncărcarea operatorului

    Aflați cum să supraîncărcați corect operatorii — membru vs non-membru, forme canonice, operatori de flux, operatorul navei spațiale C++20 și capcanele comune.

OOP Design

  1. Static Members, Singletons & PIMPL

    Explore static members, the Meyers Singleton pattern, the Factory pattern, and the PIMPL idiom for ABI stability and compile-time insulation.

  2. Composition, Interfaces & Design

    Master composition over inheritance, pure abstract interfaces, design principles (ISP, DIP), std::variant as an alternative to inheritance, and type erasure.