Home | | Object Oriented Programming and Data Structures | What is a virtual destructor? Explain the use of it.

Chapter: Object Oriented Programming and Data Structure : Inheritance and Polymorphism

What is a virtual destructor? Explain the use of it.

If the destructor in the base class is not made virtual, then an object that might have been declared of type base class and instance of child class would simply call the base class destructor without calling the derived class destructor.

What is a virtual destructor? Explain the use of it.

 

If the destructor in the base class is not made virtual, then an object that might have been declared of type base class and instance of child class would simply call the base class destructor without calling the derived class destructor.

 

Hence, by making the destructor in the base class virtual, we ensure that the derived class destructor gets called before the base class destructor.

 

class a

{

public:

 

a(){printf("\nBase Constructor\n");}

~a(){printf("\nBase Destructor\n");} };

 

class b : public a

{

public:

 

b(){printf("\nDerived Constructor\n");}

~b(){printf("\nDerived Destructor\n");}

};

int main()

{

 

a* obj=new b;

delete obj;

return 0;

 

}

Output:

 

Base Constructor

Derived Constructor

Base Destructor

By Changing

 

~a(){printf("\nBase Destructor\n");}

to

 

virtual ~a(){printf("\nBase Destructor\n");}

Output:

 

Base Constructor

Derived Constructor

Derived Destructor

Base Destructor

 

 

Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
Object Oriented Programming and Data Structure : Inheritance and Polymorphism : What is a virtual destructor? Explain the use of it. |


Privacy Policy, Terms and Conditions, DMCA Policy and Compliant

Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.