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 is inheritance in simple words?
What is inheritance write a program to show use of inheritance?
Why do we use class in oops?
What do you mean by variable?
What is the point of polymorphism?
What is the types of inheritance?
What is object and example?
What is new keyword in oops?
i=20;k=0;
for(j=1;k-i;k+=j<10?4:3)
{
cout<
What is the full form of oops?
c++ program to swap the objects of two different classes
What is the benefit of oop?
What are constructors in oop?
#include
What are the types of abstraction?