Course Content
C++ Functions
C++ Functions
Function Overloading
Function overloading in C++ allows multiple functions with the same name but different parameters to be defined within the same scope. It enables you to create functions that perform similar tasks but can handle different data types or numbers of parameters. Overloading enhances code readability, reusability, and flexibility.
Here's why function overloading is useful:
- Parameter Variation: Functions can be tailored to handle different data types or a different number of parameters, enabling more versatile usage.
- Readability: By giving the same name to functions with similar functionalities, code becomes more intuitive and easier to understand.
- Code Reusability: Functions can be reused for various data types or parameter combinations, promoting efficient code reuse.
How to overload a function?
A function is considered an overload of another function if:
- These functions have the same name.
- At least one of the following is true:
These functions have arguments of different types.
main
#include <iostream> // Function with one integer parameter void processValue(int num) { std::cout << "Processing integer: " << num << std::endl; } // Overloaded function with one double parameter void processValue(double num) { std::cout << "Processing double: " << num << std::endl; } int main() { // Function calls with different data types int intValue = 5; double doubleValue = 3.14; // Calls the first version of processValue processValue(intValue); // Calls the second version of processValue processValue(doubleValue); }
These functions have the same argument types, but these arguments have a different order in the function signature.
main
#include <iostream> // Overloaded function with a different number of arguments void processValue(int num, std::string text) { std::cout << "Integer and string: " << num << ", " << text << std::endl; } // Overloaded function with different arguments order void processValue(std::string text, int num) { std::cout << "String and integer: " << text << ", " << num << std::endl; } int main() { // Function calls with different data types and numbers of arguments int intValue = 5; std::string stringValue = "Hello"; // Calls the third version of processValue processValue(intValue, stringValue); // Calls the forth version of processValue processValue(stringValue, intValue); }
Remember
To overload the function they have to have the same name
Thanks for your feedback!