What will be the output of the following C++ code?
#include <iostream>
#include <exception>
using namespace std;
void terminator()
{
cout << "terminate" << endl;
}
void (*old_terminate)() = set_terminate(terminator);
class Botch
{
public:
class Fruit {};
void f()
{
cout << "one" << endl;
throw Fruit();
}
~Botch()
{
throw 'c';
}
};
int main()
{
try
{
Botch b;
b.f();
}
catch(...)
{
cout << "inside catch(...)" << endl;
}
}
#include <iostream>
#include <exception>
using namespace std;
void terminator()
{
cout << "terminate" << endl;
}
void (*old_terminate)() = set_terminate(terminator);
class Botch
{
public:
class Fruit {};
void f()
{
cout << "one" << endl;
throw Fruit();
}
~Botch()
{
throw 'c';
}
};
int main()
{
try
{
Botch b;
b.f();
}
catch(...)
{
cout << "inside catch(...)" << endl;
}
}A. one
B. inside catch
C. one
terminate
D. one
terminate
Aborted
Answer: Option D

Join The Discussion