есть (например) класс Shape, у которого все методы pure virtual. Есть набор других классов аля Oval, Rect, которые наследуют Shape, реализовывая все его virtual методы.
Но я постоянно запинаюсь о разные ошибки компилятора, пытаясь объявить std::vector<Shape> в котором хотел хранить все его разные типы ("Невозможно создать экземпляр абстрактного класса").
Что-то я делаю не так. Цель — обращаться к списку разных классов, объединенных определенным интерфейсом/контрактом. Кто что подскажет?
vector<T> это вектор из конкретно экземляров класса T, полиморфизм бывает только у указателей/ссылок так что в первом приближении надо хранить в vector<unique_ptr<Shape>>
Обсуждают сегодня