Answer Posted / pradeep
This example fully describe the need of Virtual Destructor
in base class:-
----------------------------------------------------------
#include <iostream.h>
#include <stdio.h>
class Base
{
public:
Base(){ cout<<"Constructor: Base"<<endl;}
~Base(){ cout<<"Destructor : Base"<<endl;}
};
class Derived: public Base
{
//Doing a lot of jobs by extending the functionality
public:
Derived(){ cout<<"Constructor: Derived"<<endl;}
~Derived(){ cout<<"Destructor : Derived"<<endl;}
};
void main()
{
Base *Var = new Derived();
delete Var;
getch();
}
-----------------------------------------------------------
When it will be executed..it will show only that Base Class
destructor executed not the Derived.
But if we make Base class destructor "virtual"
(i.e. virtual ~Base(){ cout<<"Destructor : Base"<<endl;} )
then we can verify that Destructor execute into this order:--
1. Derived class destructor
2. Base class destructor
---If there is any mistake kindly let me know.
Thanks...!!!
Is This Answer Correct ? | 11 Yes | 0 No |
Post New Answer View All Answers
c++ program to swap the objects of two different classes
Is enum a class?
What is the use of oops?
What is a superclass in oop?
What is this pointer in oop?
How Do you Code Composition and Aggregation in C++ ?
What is overloading and its types?
Why is it so that we can have virtual constructors but we cannot have virtual destructors?
What is interface? When and where is it used?
Why is object oriented programming so hard?
How is polymorphism achieved?
what is difference between class template and template class?
What does and I oop and sksksk mean?
What do you mean by variable?
How do you define social class?