Virtual Function in C++
Virtual Function in C++
Program:
Header file
/*
===========================
Author: Krunal Soni
Purpose: To explain the concept of Base class and Derive class
===========================
All rights reserved by KSONI
*/
#include <iostream>
#include <string.h>
using namespace std;
/*
=========================
Base class is the parent class
=========================
*/
class Base{
public:
Base();
~Base();
void display();
//virtual void display();
private:
char classname[40];
};
/*
=========================
Derive class has been derived from Base class
=========================
*/
class Derive: public Base{
public:
Derive();
~Derive();
void display();
private:
char classname[40];
};
Defination file
/*
===========================
Author: Krunal Soni
Purpose: To explain the concept of Base class and Derive class
===========================
All rights reserved by KSONI
*/
#include "VirtualC.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
/*
=========================
Base class component defination
=========================
*/
Base::Base(){
strcpy(classname,"I am in Base class");
}
Base::~Base(){
void Base::display(){
cout<<classname<<endl;
}
/*
=========================
Derive class component defination
=========================
*/
Derive::Derive(){
strcpy(classname,"I am in Derive class");
}
Derive::~Derive(){
void Derive::display(){
cout<<classname<<endl;
}
Application file
/*
===========================
Author: Krunal Soni
Purpose: To explain the concept of Base class and Derive class
===========================
All rights reserved by KSONI
*/
#include "VirtualC.h"
#include <iostream>
using namespace std;
/*
=========================
Master function which run the app
=========================
*/
int main(int argc, char * argv[]){
Derive OD; //derive class object
Base *OB= new Base; //base class pointer
OB=&OD; //base class pointer points the derive object
OD.display(); //function from derive will be called
OB->display();// function from base will be called w/o virtual
// function from derive will be called w/ virtual
return 0;
}
Result file: