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



My Personal Notes arrow_drop_up



Practice Tags :

Recommended Posts:



2 Average Difficulty : 2/5.0
Based on 1 vote(s)






User Actions