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
What are the features of oop?
Why is polymorphism needed?
Why is destructor used?
How long to learn object oriented programming?
What is methods in oop?
What are two types of polymorphism?
What is super in oop?
Describe these concepts: Polymorphism, Inheritance and Abstraction.
What is debug class?what is trace class? What differences are between them? With examples.
What is and I oop mean?
What is inheritance and how many types of inheritance?
How do you achieve polymorphism?
What are the benefits of interface?
What is difference between abstraction and encapsulation?
Why is polymorphism used?