1.Overloading is a dynamic or run-time binding and Overriding is static or compile-time binding
2.Redefining a function in a friend class is called function overriding while Redefining a function in a derived class is called an overloaded function.
3.Overloading is a static or compile-time binding and Overriding is dynamic or run-time binding
4.Redefining a function in a friend class is called function overloading while Redefining a function in a derived class is called as overridden function.