#include<iostream>
using namespace std;
class Base{};
class Derived:public Base{};
int main(){
Derived d;
try{
throw d;
}
catch(Base b){
cout<<"1";
}
catch(Derived d){
cout<<"2";
}
return 0;
}
Почему эта программа отображает вывод 1, а не 2? Если бы я бросил объект базового класса, а результат был равен 2, проблем не возникнет, поскольку производный класс - это базовый класс вместе с дополнительными функциями. Но разве это наоборот?