C++ Tutorial
Class and Object
Reference
Inheritance and Derivation
Polymorphism and Virtual Functions
Operator Overloading
Template
Exception
Object Oriented Advanced
Input/Output Stream
File Operations
In C++, you can specify default values for function parameters. This allows you to call a function with fewer arguments than its defined parameters. If an argument is not provided, the function will use the default value for that parameter. This can make your code more concise and flexible.
In this tutorial, we'll cover how to define and use default parameters in C++ functions.
=
) in the function declaration.Example:
#include <iostream> // Function declaration with default parameters int add(int a, int b = 0, int c = 0); int main() { std::cout << "add(1) = " << add(1) << std::endl; std::cout << "add(1, 2) = " << add(1, 2) << std::endl; std::cout << "add(1, 2, 3) = " << add(1, 2, 3) << std::endl; return 0; } // Function definition int add(int a, int b, int c) { return a + b + c; }
Output:
add(1) = 1 add(1, 2) = 3 add(1, 2, 3) = 6
Example:
#include <iostream> // Function declaration with default parameters void displayMessage(std::string message, int repeat = 1, char separator = '-'); int main() { std::cout << "Default parameters:" << std::endl; displayMessage("Hello!"); std::cout << "Custom separator:" << std::endl; displayMessage("Hello!", 1, '+'); std::cout << "Custom repeat and separator:" << std::endl; displayMessage("Hello!", 3, '*'); return 0; } // Function definition void displayMessage(std::string message, int repeat, char separator) { for (int i = 0; i < repeat; ++i) { std::cout << message << std::endl; } std::cout << std::string(message.length(), separator) << std::endl; }
Output:
Default parameters: Hello! ----- Custom separator: Hello! +++++ Custom repeat and separator: Hello! Hello! Hello! *****
By using default parameters in C++ functions, you can simplify your code, reduce redundancy, and improve its readability. Be sure to follow the rules for default parameters to avoid any potential issues.
How to use default parameters in C++ functions:
#include <iostream> // Function with default parameter void printMessage(const std::string& message = "Hello, World!") { std::cout << message << std::endl; } int main() { printMessage(); // Uses the default parameter value printMessage("Custom message"); // Overrides the default parameter value return 0; }
Default parameter values in C++ function declaration:
// Function declaration with default parameter value void greetUser(const std::string& name = "Guest"); int main() { greetUser(); // Uses the default parameter value greetUser("John"); // Overrides the default parameter value return 0; } // Function definition void greetUser(const std::string& name) { // Function body }
Using multiple default parameters in C++ functions:
#include <iostream> // Function with multiple default parameters void printDetails(const std::string& name = "John", int age = 25, bool isStudent = false) { std::cout << "Name: " << name << ", Age: " << age << ", Student: " << std::boolalpha << isStudent << std::endl; } int main() { printDetails(); // Uses all default parameter values printDetails("Alice", 30); // Overrides name and age, uses default for isStudent printDetails("Bob", 22, true); // Overrides all default parameter values return 0; }
Default parameters and function prototypes in C++:
// Function prototype with default parameter value void displayNumber(int num = 42); int main() { displayNumber(); // Uses the default parameter value return 0; } // Function definition void displayNumber(int num) { // Function body }
Default parameters in member functions of C++ classes:
#include <iostream> class MyClass { public: // Member function with default parameter void printMessage(const std::string& message = "Hello, Class!") { std::cout << message << std::endl; } }; int main() { MyClass obj; obj.printMessage(); // Uses the default parameter value obj.printMessage("Custom message"); // Overrides the default parameter value return 0; }
Default parameters in function pointers in C++:
#include <iostream> // Function with default parameter void printDetails(const std::string& name = "John", int age = 25) { std::cout << "Name: " << name << ", Age: " << age << std::endl; } int main() { // Function pointer with default parameter values void (*funcPtr)(const std::string&, int) = &printDetails; // Function calls using the function pointer funcPtr(); // Uses default parameter values funcPtr("Alice"); // Overrides name, uses default for age funcPtr("Bob", 30); // Overrides both default parameter values return 0; }