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 vitrual, the derived class destructor is called which in turn calls base class destructor.
Quiz of this Question
Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.