Function overloading is compile time polymorphism in which 2 or more functions share the same name with different arguments and parameters in C++ oops. NOTE: In C++, constructor is also a special type of function that can be overloaded.