Есть ли практическое применение для динамического преобразования в указатель void?

В C ++, T q = dynamic_cast (p); конструкция выполняет приведение во время выполнения указателя p к некоторому другому типу указателя T , который должен появиться в иерархии наследования динамического типа * p , чтобы добиться успеха. Все в порядке.

Однако также возможно выполнить dynamic_cast (p) , который просто вернет указатель на «наиболее производный объект» (см. 5.2.7 :: 7 в C + +11). Я понимаю, что эта функция, вероятно, предоставляется бесплатно при реализации динамического приведения, но полезна ли она на практике? В конце концов, его возвращаемый тип - в лучшем случае void * , так что в этом хорошего?

72
задан Kerrek SB 14 November 2011 в 15:34
поделиться