Open In App

C++ | Virtual Functions | Question 10




#include<iostream>
using namespace std;
class Base  {
public:
    Base()    { cout<<"Constructor: Base"<<endl; }
    virtual ~Base()   { cout<<"Destructor : Base"<<endl; }
};
class Derived: public Base {
public:
    Derived()   { cout<<"Constructor: Derived"<<endl; }
    ~Derived()  { cout<<"Destructor : Derived"<<endl; }
};
int main()  {
    Base *Var = new Derived();
    delete Var;
    return 0;
}

(A)

Constructor: Base
Constructor: Derived
Destructor : Derived
Destructor : Base

(B)



Constructor: Base
Constructor: Derived
Destructor : Base

(C)

Constructor: Base
Constructor: Derived
Destructor : Derived

(D)



Constructor: Derived
Destructor : Derived

Answer: (A)
Explanation: Since the destructor is virtual, the derived class destructor is called which in turn calls base class destructor.
Quiz of this Question

Article Tags :