using namespace std;
void test(float a)throw(int)
{
if(a>90)
throw 'A';
else if(a>=60)
throw a;
else if(a>30)
throw 1;
else
throw &a;
}
void main()
{
cout<<"result:\n";
try
{test(99);test(88);test(59);test(21); }
catch(char a)
{
cout<<"pretty good!\n";
}catch(float a)
{cout<<"well done!\n";}
catch(int a)
{cout<<"just so so!\n";}
catch(float *a)
{cout<<"you should work more hard!\n";}
}
为啥只能输出try函数中的第一个函数,而下面的函数都没运行。。。而且
void test(float a)throw(int)中的throw()中不管啥类型结果都是运行try中第一个函数,
随后就结束了。。。是try函数中只要一抛出就不在运行接下去的函数?书上好像不是这样的。。。还是编译器问题?