以下程序的输出
null
#include<iostream> using namespace std; class Base {}; class Derived: public Base {}; int main() { Derived d; try { throw d; } catch (Base b) { cout<< "Caught Base Exception" ; } catch (Derived d) { cout<< "Caught Derived Exception" ; } return 0; } |
(A) 捕获派生异常 (B) 捕获基本异常 (C) 编译错误 答复: (B) 说明: 如果基类和派生类都被捕获为异常,那么派生类的catch块必须出现在基类之前。如果我们把基类放在第一位,那么派生类catch块将永远无法到达。
在Java中,编译器本身不允许在派生之前捕获基类异常。在C++中,编译器可能会发出警告,但编译代码。 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END