У цьому посібнику ми вивчимо аргументи за замовчуванням C ++ та їх роботу за допомогою прикладів.
У програмуванні на C ++ ми можемо надати значення за замовчуванням для параметрів функції.
Якщо функція з аргументами за замовчуванням викликається без передачі аргументів, то використовуються параметри за замовчуванням.
Однак якщо аргументи передаються під час виклику функції, аргументи за замовчуванням ігноруються.
Робота аргументів за замовчуванням
![](https://cdn.wiki-base.com/5527966/c_programming_default_arguments_parameters.png.webp)
Ми можемо зрозуміти роботу аргументів за замовчуванням із зображення вище:
- При
temp()
виклику функцією використовуються обидва параметри за замовчуванням. - При
temp(6)
виклику перший аргумент стає,6
тоді як для другого параметра використовується значення за замовчуванням. - При
temp(6, -2.3)
виклику обидва параметри за замовчуванням замінюються, в результаті чогоi = 6
іf = -2.3
. - При
temp(3.4)
передачі функція поводиться небажано, оскільки другий аргумент не може бути переданий без передачі першого аргументу.
Тому3.4
передається як перший аргумент. Оскільки перший аргумент був визначений якint
, фактично передане значення є3
.
Приклад: Аргумент за замовчуванням
#include using namespace std; // defining the default arguments void display(char = '*', int = 3); int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both arguments passed: "; // $, 5 will be parameters display('$', count); return 0; ) void display(char c, int count) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; )
Вихідні дані
Аргумент не передано: *** Перший аргумент передано: ### Обидва аргументи передано: $$$$$
Ось як працює ця програма:
display()
викликається без передачі аргументів. У цьому випадкуdisplay()
використовуються параметри за замовчуваннямc = '*'
таn = 1
.display('#')
викликається лише з одним аргументом. У цьому випадку першим стає'#'
. Другий параметр за замовчуваннямn = 1
зберігається.display('#', count)
викликається з обома аргументами. У цьому випадку аргументи за замовчуванням не використовуються.
Ми також можемо визначити параметри за замовчуванням у самому визначенні функції. Програма нижче еквівалентна наведеній вище.
#include using namespace std; // defining the default arguments void display(char c = '*', int count = 3) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; ) int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both argument passed: "; // $, 5 will be parameters display('$', count); return 0; )
Що слід пам’ятати
- Як тільки ми надаємо значення параметра за замовчуванням, усі наступні параметри також повинні мати значення за замовчуванням. Наприклад,
// Invalid void add(int a, int b = 3, int c, int d); // Invalid void add(int a, int b = 3, int c, int d = 4); // Valid void add(int a, int c, int b = 3, int d = 4);
- Якщо ми визначаємо аргументи за замовчуванням у визначенні функції замість прототипу функції, тоді функція повинна бути визначена перед викликом функції.
// Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )