Наследование от std::vector
не рекомендуется из-за отсутствия виртуальных деструкторов и других виртуальных функций, что нарушает LSP (принцип подстановки Лисков) и приводит к проблемам при полиморфном использовании.
Примеры проблем:
Проблема со срезом (slicing): При передаче объекта производного класса по значению или ссылке на базовый класс std::vector
, специфичные для производного класса данные и поведение будут потеряны.
c
Отсутствие виртуального деструктора: Если вы удаляете объект производного класса через указатель на базовый класс std::vector
, деструктор производного класса не будет вызван, что может привести к утечкам ресурсов.
c
Наследование от std::vector
не рекомендуется из-за отсутствия виртуальных деструкторов и других виртуальных функций, что нарушает LSP (принцип подстановки Лисков) и приводит к проблемам при полиморфном использовании.
Примеры проблем:
Проблема со срезом (slicing): При передаче объекта производного класса по значению или ссылке на базовый класс std::vector
, специфичные для производного класса данные и поведение будут потеряны.
c
Отсутствие виртуального деструктора: Если вы удаляете объект производного класса через указатель на базовый класс std::vector
, деструктор производного класса не будет вызван, что может привести к утечкам ресурсов.
c
Register or sign in to get access to full answers for all questions from the question bank.