Я изучаю обработку исключений на С++ и сталкиваюсь с проблемой. Вот код:
#include<iostream>
#include<exception>
using namespace std;
class A
{
public:
virtual void f(void){}
};
class AA:public A
{
public:
void aa(void){};
};
int main(void)
{
A a;
try
{
dynamic_cast<AA>(a).aa();
}
catch(exception ex)
{
cout<<"["<<ex.what()<<"]"<<endl;
}
return 0;
}
Поэтому я думал, что try catch позволит функции выполниться и покажет мне содержимое исключения, но мой компилятор не компилирует его. Я использую кодовый блок с GNU GCC. Пожалуйста, помогите мне и покажите, что мне нужно сделать, чтобы код работал так, как я задумал. большое спасибо.
dynamic_cast
работает с указателями или ссылочными типами.AA
не является указателем или ссылочным типом. - person Chad   schedule 16.06.2013catch(const std::exception& ex)
- person milleniumbug   schedule 16.06.2013