🏛️

C++ — ООП

Классы, наследование, полиморфизм, инкапсуляция, virtual

32 вопросов · 32 показано

EasyЧто такое инкапсуляция и зачем она нужна?MediumЧем наследование (inheritance) отличается от композиции (composition)?MediumЧем public, private и protected наследование отличаются?MediumКак работают виртуальные функции (virtual) и таблица vtable?MediumЧто такое object slicing?EasyЧто такое pure virtual функция и абстрактный класс?MediumЧем интерфейс (interface) в C++ отличается от Java/C#?HardЧто такое diamond problem и как C++ её решает?HardЧем множественное наследование полезно и какие опасности?HardЧто такое CRTP (Curiously Recurring Template Pattern)?EasyЧем конструктор копирования отличается от оператора присваивания?MediumКак работает конструктор с initializer list?MediumЧем explicit конструктор полезен?MediumЧто такое delegating constructor?EasyЧем default и delete конструкторы (= default, = delete)?EasyЧто такое static-члены класса и как их использовать?MediumЧем static polymorphism отличается от dynamic polymorphism?MediumЧто такое virtual destructor и когда он нужен?HardПочему вызов virtual функции в конструкторе/деструкторе ведёт себя неожиданно?EasyЧто такое friend-класс и friend-функция?MediumЧто такое method hiding и как его избежать?HardЧто такое covariant return type?HardЧто такое пустой базовый класс (empty base) optimization?MediumЧем polymorphic класс отличается от non-polymorphic?MediumЧто такое pImpl (pointer to implementation) идиома?HardЧто такое virtual base class?MediumЧем final полезен для девиртуализации?HardЧто такое SBO/std::variant как альтернатива полиморфизму?EasyЧто такое abstract class vs concrete class?HardЧто такое NVI (Non-Virtual Interface) идиома?HardЧто такое mixin и как его реализовать в C++?EasyЧем override обязывает и какие ошибки ловит?