下面这个程序的输出结果是( )。 #include<iostream> using namespace std; class S { public: ~S() { cout << "S"; } }; char fun() { S s1; throw 'T'; return '0'; } int main() { try { cout << fun(); } catch (char c) { cout << c; } }
时间: 2024-04-01 14:35:02 浏览: 150
使用include <iostream>时一定要加using namespace std
程序的输出结果是 "ST"。
分析:在调用 fun 函数时,会先创建一个 S 类的对象s1,然后抛出一个字符异常 'T'。由于没有被捕获,所以会跳出 fun 函数,s1 对象也会被销毁,此时会调用其析构函数,输出 "S"。接着进入 catch 块,捕获到了字符异常,输出 "T"。因此程序的输出结果是 "ST"。
阅读全文