when can we use virtual destructor?

Answer Posted / richa

It is used whenever a base class pointer is pointing to its
derived class.In such a case when a user tries to delete the
base class pointer then it results in deallocating the
memory occupied by the base class.Therefore instead the
derived class getting destroyed the base class does.Now as
the base class gets destroyed the base class pointer which
was pointing to its derived class hold no meaning as it is
already destroyed.
n such a case we should make the destructors of the base
class virtual so that whenever a delete is called on the
base class pointer then as the destructor is virtual the
compiler will call the destructor of the respective derived
class.Hence the scenario wont be breached when a base class
pointe points to derived class as it would help deleting the
respective derived class object.

Is This Answer Correct ?    86 Yes 5 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

How many namespaces are there in c++?

761


What are virtual constructors/destructors?

753


write a programme to get a character and thier ASCII value

2788


How should a contructor handle a failure?

897


What is abstract class in c++?

775


What is virtual destructor? What is its use?

769


What is lvalue?

907


What are the various access specifiers in c++?

776


When does the c++ compiler create temporary variables?

799


Can we distribute function templates and class templates in object libraries?

789


What does new return if there is insufficient memory to make your new object?

778


Difference between overloading vs. Overriding

801


What is the cout in c++?

771


What is stack unwinding?

788


What is the difference between ++ count and count ++?

813