Open In App
Related Articles

C++ | Inheritance | Question 2

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report
Output?
#include <iostream>  
using namespace std;
  
class Base1 {
 public:
     ~Base1()  { cout << " Base1's destructor" << endl; }
};
    
class Base2 {
 public:
     ~Base2()  { cout << " Base2's destructor" << endl; }
};
    
class Derived: public Base1, public Base2 {
   public:
     ~Derived()  { cout << " Derived's destructor" << endl; }
};
    
int main()
{
   Derived d;
   return 0;
}

                    
(A)
Base1's destructor
Base2's destructor
Derived's destructor
(B)
Derived's destructor
Base2's destructor
Base1's destructor
(C)
Derived's destructor
(D) Compiler Dependent

Answer: (B)

Explanation: Destructors are always called in reverse order of constructors.

Quiz of this Question

Last Updated : 28 Jun, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads