Virtual Function:
This concept is related to polymorphism in c++ and it includes another concepts
like 'early binding' and 'late binding'.
early binding= it is when any function in main section eg([Link]()) here compiler
sees who is calling the fun and what is the type of object which is calling fun.
late binding= it is done by the compiler when we have declared any func as virtual
and compiler sees only the content of the function caller that is [Link]() .Here
the compiler sees who is the parent of object 'obj' and runs the func 'fun' from
that parent
For this that func 'fun' should be written with prefix 'virtual'