I guess you can say overloading is polymorphism for operators. Polymorphism is general to all kinds of functions while overloading is specific to operators.[COLOR="Silver"]
The book I use has a topic title "Overloaded Functions". So, according to the book, functions can also be overloaded. By the way, the passage in my last posting was also taken from the same book.
Polymorphism is allowing a variable to have different behaviors depending on which version is implemented. A poodle is a kind of dog is a kind of mammal. A Persian is a kind of cat is a kind of mammal. You use Polymorphism to implement a poodle or a Persian as the object referenced by a pointer to mammal. Polymorphism means it will behave as what it is, not as a generic mammal.
Overloading is the process of creating several versions of the same function, generally distinguished by the parameters. That lets you do things like create print(int var), print(int_matrix var), etc. and have each print the object in an appropriate manner.
I appreciate your help. I'm sorry but I'm still unclear about the distinction between 'overloading' and 'polymorphism'. Could you please elaborate it a bit? It would be kind of you. Thanks.