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