Ваш вопрос неясен, потому что он смешивает несколько разных вещей.
С одной стороны, указатель на производный класс может быть преобразован в указатель на базовый класс (при условии, что база доступна). Это естественное преобразование, и нет необходимости в том, чтобы кто-то делал это.
С другой стороны, вы упоминаете dynamic_cast
и его способность выполнять понижений . Но downcast - это приведение в обратном направлении: от указателя на базовый класс до указателя на производный класс. Даункаст может быть выполнен как dynamic_cast
, так и static_cast
, в зависимости от того, что вам нужно и какой объем проверки во время выполнения вам требуется.
... И в то же время вы говорите о приведении результата new
, который, конечно, может быть только повышен, но не понижен.
Итак, о чем вы спрашиваете? Повышения или понижения?