Аргументи програмування за замовчуванням на C ++ (параметри)

У цьому посібнику ми вивчимо аргументи за замовчуванням C ++ та їх роботу за допомогою прикладів.

У програмуванні на C ++ ми можемо надати значення за замовчуванням для параметрів функції.

Якщо функція з аргументами за замовчуванням викликається без передачі аргументів, то використовуються параметри за замовчуванням.

Однак якщо аргументи передаються під час виклику функції, аргументи за замовчуванням ігноруються.

Робота аргументів за замовчуванням

Як працюють аргументи за замовчуванням у C ++

Ми можемо зрозуміти роботу аргументів за замовчуванням із зображення вище:

  1. При temp()виклику функцією використовуються обидва параметри за замовчуванням.
  2. При temp(6)виклику перший аргумент стає, 6тоді як для другого параметра використовується значення за замовчуванням.
  3. При temp(6, -2.3)виклику обидва параметри за замовчуванням замінюються, в результаті чого i = 6і f = -2.3.
  4. При 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; )

Вихідні дані

 Аргумент не передано: *** Перший аргумент передано: ### Обидва аргументи передано: $$$$$

Ось як працює ця програма:

  1. display()викликається без передачі аргументів. У цьому випадку display()використовуються параметри за замовчуванням c = '*'та n = 1.
  2. display('#')викликається лише з одним аргументом. У цьому випадку першим стає '#'. Другий параметр за замовчуванням n = 1зберігається.
  3. 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; )

Що слід пам’ятати

  1. Як тільки ми надаємо значення параметра за замовчуванням, усі наступні параметри також повинні мати значення за замовчуванням. Наприклад,
     // 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);
  2. Якщо ми визначаємо аргументи за замовчуванням у визначенні функції замість прототипу функції, тоді функція повинна бути визначена перед викликом функції.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Цікаві статті...