Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
> Любопытно было бы узнать, а какой ответ ожидали они?
virtual int GetTrivialField() const = 0?Вывод: делать виртуальные методы публичными не очень хорошо.
либо следует удалять объекты где-то не слишком далеко от точки их здания
Давайте вспомним, для кого создаются публичные методы. Они определяют интерфейс класса и создаются для тех, кто будет использовать класс.
А для чего существуют виртуальные методы? Правильно — для настройки поведения класса. То есть для тех, кто будет расширять функциональность класса.
A *get_a() { return new B; }
...
std::shared_ptr<A> a(get_a());
Как безопасно разрушить объект. И другие мысли