Для обеспечения полиморфизма и корректного удаления объектов при работе через указатель на базовый тип, необходимо использовать виртуальные функции. Это позволяет вызывать правильную реализацию метода из производного класса, а также гарантирует корректное освобождение памяти при удалении объекта через базовый указатель.
= 0) обязывает производные классы реализовать метод draw(). Виртуальный деструктор в базовом классе гарантирует, что при удалении объекта через указатель на базовый тип будет вызван деструктор соответствующего производного класса, что предотвращает утечки памяти и некорректное освобождение ресурсов.Обоснование:
Ответ: Объявить draw() как чисто виртуальную функцию, а деструктор базового класса сделать виртуальным – это также обеспечит полиморфизм и безопасность при удалении объектов.