Examveda

What will be the output of the following C++ code?
#include <iostream>
using namespace std;
class Base
{
    protected:
    int a;
    public:
    Base() 
    { 
        a = 34; 
    }
    Base(int i)
    { 
       a = i; 
    }
    virtual ~Base() 
    { 
        if (a < 0)  throw a; 
    }
    virtual int getA()
    {
       if (a < 0) 
        { 
            throw a;
        }
    }
};
int main()
{
    try
    {
        Base b(-25);
        cout << endl << b.getA();
    }
    catch (int) 
    {
        cout << endl << "Illegal initialization";
    }
}

A. Illegal initialization

B. Terminate called after throwing an instance of 'int'

C. Illegal initialization & terminate called after throwing an instance

D. initialization

Answer: Option B


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