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
How are the features of c++ different from c?
What is a loop? What are different types of loops in c++?
Why isn't sizeof for a struct equal to the sum of sizeof of each member?
What is the auto keyword good for in c++?
What is the best way to take screenshots of a window with c++ in windows?
Using a smart pointer can we iterate through a container?
What do you mean by global variables?
What are pointer-to-members? Explain.
Explain mutable storage class specifier.
What do you mean by persistent and non persistent objects?
How do you flush std cout?
How is modularity introduced in C++?
What are the advantages of using typedef in a program?
What is the main purpose of overloading operators?
What is the most common mistake on c++ and oo projects?