Я проходил различие между поймать по значению / refrence в обработке исключений в c ++
Наткнулся на этот блог https://blog.knatten.org/2010/04/02/always-catch-exceptions-by-reference/
Пробовал то же самое, и яя не получаю ожидаемый вывод.
#include<iostream>
using namespace std;
#include <typeinfo>
class Base {};
class Derived: public Base {};
int main()
{
try
{
throw Derived();
}
catch(Base &b)
{
cout<<typeid(b).name();
}
return 0;
}
Вывод, который я получаю: 4Base
Поскольку я ловлю по ссылке, typeid (b) .name () должен перехватить Derived ?или я что-то не так делаю?