To add on to shabbir...overloading is the process of giving a particular operator another meaning.
For eg. while using cout << "hello world";
Here "<<" does not have its actual meaning but is an output operator.This is a form or compile time polymorphism.
The use of virtual functions
is an example for overriding of functions in the subclasses.A form of run time polymorphism.