Examveda

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;
    }
}

A. one

B. inside catch

C. one
terminate

D. one
terminate
Aborted

Answer: Option D


Join The Discussion

Related Questions on C plus plus miscellaneous

What is the difference between '++i' and 'i++' in C++?

A. None of the above

B. They both have the same effect

C. '++i' increments the value of 'i' before returning it, while 'i++' increments the value of 'i' after returning it

D. '++i' increments the value of 'i' after returning it, while 'i++' increments the value of 'i' before returning it