You can search on google for detail Or ask some point where you are unable to understand.
In short:
In c++ two types of polymorphism One is Compile time : By function overloading,operator overloading and template also.
and second is Run Time polymorphism: by Virtual function
>>> By the use of virtual function, we can override the function ( b/w base and derived class)
Code:
class base
{
public:
void Fun()
{
cout<<" I am from base"<<endl;
}
}
class derived: public Base
{
public:
void fun()
{
cout<<" I am from derived"<<endl;
}
}
int main()
{
Base *bptr;
Derived dObj;
bPtr=&dObj;
bPtr-> fun()
}
Output will be
I am from Base
Because It will never call to derived because No run time polymorphism support here.
If you write virtual keyword before function then
Code:
class base
{
public:
virtual void Fun()
{
cout<<" I am from base"<<endl;
}
}
class derived: public Base
{
public:
void fun()
{
cout<<" I am from derived"<<endl;
}
}
int main()
{
Base *bptr;
Derived dObj;
bPtr=&dObj;
bPtr-> fun()
}
Output will be
I am from Derived
Because It will call to derived because run time polymorphism support because of writing virtual.
For detail you can see this thread.
http://www.go4expert.com/showthread.php?t=8403