C ++ dynamic_cast поведение при сбое приведения - PullRequest
1 голос
/ 19 декабря 2011

dynamic_cast оценивается как NULL, если приведение включает указатели, но выдает исключение bad_cast, если приведение включает ссылочные типы.

Почему эта разница в поведении?

Спасибо

Ответы [ 2 ]

4 голосов
/ 19 декабря 2011

Потому что нет такой вещи, как NULL ссылка:)

3 голосов
/ 19 декабря 2011

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

...