Програмування С, С++теорія та практика (частина 2)
2.2.4 Аргументи по замовчуванню
У Сі++ з’являється нове застосування аргументів у викликах функцій - використання аргументів по замовчуванню. Таку назву має той аргумент, який можна не вказувати у викликах функцій, тоді як компілятор за необхідністю приєднає його автоматично, присвоюючи значення по замовчуванню. Аргументи по замовчуванню визначаються, як і решта, у прототипі функції. У випадку, коли є бажання передати своє значення, слід вказати його явно, таким чином перекриваючи значення по замовчуванню. Синтаксис Сі++ потребує при оголошенні та використанні аргументів по замовчуванню дотримання наступних правил:
• для використання значення аргументу по замовчуванню в якості параметру слід пропустити аргумент на місці відповідного параметру у виклику функції;
• аргументи, що приймаються по замовчуванню, розподіляють список параметрів функції на дві частини: перша, що містить параметри (цей список може бути порожнім, якщо по замовчуванню присвоєно аргументи усім параметрам); друга містить параметри, якщо присвоєно аргументи по замовчуванню;
• якщо приймається параметр по замовчуванню, слід призначити по замовчуванню аргументи й решти параметрів, що слідують далі.
Для прикладу розглянемо наступне оголошення функції: іп'Ь £п(іп£ Ьазе, іп'Ь соип'Ь=2,іп'Ь сойе=3) ;
Тепер організуємо виклик цієї функції наступним чином:
іп£ х=25;
1) . іп'Ь а=£п(х);
2) . іп'Ь Ь=£п(х,5);
3) . іп'Ь с=£п(х,7,25) ;
У першому виклику використовується лише перший аргумент, а решта параметрів соипґ та сойе приймаються по замовчуванню. Наступний виклик функції містить вже два аргументи, перекриваючи значення по замовчуванню для аргументу соипґ. Останній виклик не містить аргументів по замовчуванню взагалі, використовуючи конкретні значення. Зауважимо, що слід розміщувати параметри для аргументів по замовчуванню у порядку збільшення вірогідності їхнього використання, аби забезпечити найбільш доцільне їх застосування на практиці. Крім того, Сі++ допускає, аби значення аргументу функції, що використовується по замовчуванню, необов’язково було константою: воно може бути глобальною змінною або навіть значенням, що повертається деякою функцією.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
