#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