dynamic_cast оценивается как NULL, если приведение включает указатели, но выдает исключение bad_cast, если приведение включает ссылочные типы.
dynamic_cast
NULL
bad_cast
Почему эта разница в поведении?
Спасибо
Потому что нет такой вещи, как NULL ссылка:)
На самом деле может быть нулевая ссылка (или, скорее, ссылка на ноль), но это неопределенное поведение (UB). Поскольку стандарт не определяет UB, то dynamic_cast создает исключение, которое в значительной степени четко определено.