Examveda

What will be the output of the following C++ code?
#include <iostream>
using namespace std;
class Parent
{
    public:
    Parent (void) 
    {     
        cout << "Parent()\n";
    }
    Parent (int i) 
    { 
        cout << "Parent("<< i << ")\n"; 
    };
    Parent (void) 
    { 
        cout << "~Parent()\n";
    }; 
};
class Child1 : public Parent { };
class Child2 : public Parent
{
    public:
    Child2 (void) 
    {
        cout << "Child2()\n";
    }
    Child2 (int i) : Parent (i) 
    {
        cout << "Child2(" << i << ")\n"; 
    }
    ~Child2 (void) 
    {
        cout << "~Child2()\n"; 
    }
};
int main (void)
{
    Child1 a;
    Child2 b;
    Child2 c(42);
    return 0;
}

A. Parent()
Parent()
Child2()
Parent(42)
Child2(42)
~Child2()
~Parent()
~Child2()
~Parent()
~Parent()

B. error

C. runtime error

D. Parent(42)

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