Аргументы па змаўчанні выкарыстоўваюцца, калі вы не падасце ніякіх аргументаў або толькі некалькі аргументаў пры выкліку функцыі. Аргументы па змаўчанні выкарыстоўваецца падчас кампіляцыі праграмы. Напрыклад, выкажам здагадку , што ў вас ёсць пэўны карыстальнікам функцыя sum
заяўленую як гэта: int sum(int a=10, int b=20)
, цяпер пры выкліку гэтай функцыі не даюць якіх - небудзь аргументаў, называецца проста сума (); то ў гэтым выпадку вынік будзе 30, укладальнік выкарыстоўваюцца значэнні па змаўчанні 10 і 20, абвешчанай у подпісы функцыі. Калі перадаць толькі адзін аргумент, як гэта: сума (80), то вынік будзе 100, выкарыстоўваючы перададзены аргумент 80 у якасці першага значэння і 20 ўзятыя з аргументу па змаўчанні.
Прыклад: Па змаўчанні аргументы ў C ++
#include <iostream> выкарыстоўваючы патезрас; INT сума (Int а, бы INT = 10, Int з = 20); Int асноўных () {/ * У гэтым выпадку значэнне перадаецца як * 1 і Б, а значэння бяруцца з * Аргументы па змаўчанні. * /соиЬ << сума (1) << епсИ;/ * У гэтым выпадку значэнне перадаецца як * 1 і значэнне б як 2, значэнне З значэнняў * Ўзята з аргументаў па змаўчанні. * /соиЬ << сума (1, 2) << епсИ;/ * У гэтым выпадку ўсе тры значэнні * Перадаецца падчас выкліку функцыі, такім чынам, няма * Выкарыстоўваюцца аргументы па змаўчанні. * /соиЬ << сума (1, 2, 3) << епсИ;вяртаць 0; } INT сума (Int А, Int, Int б с) {ИНТ г;г = а + B + C;вяртаць г; }
выхад:
31 23 6
Правілы аргументаў па змаўчанні
Як вы ўжо бачылі ў прыведзеным вышэй прыкладзе, што я прысвоены значэнні па змаўчанні для толькі два аргументу б і пры абвяшчэнні функцыі. Гэта да вас, каб прызначыць значэнні па змаўчанні для ўсіх аргументаў або толькі выбраныя аргументы, але памятайце наступнае правіла пры прызначэнні значэнні па змаўчанні толькі некаторыя з аргументаў:
Калі прысвоіць значэнне па змаўчанні для аргументу, наступныя аргументы павінны мець значэння па змаўчанні , ускладзеныя на іх, інакш вы атрымаеце памылку кампіляцыі.
Напрыклад: Давайце паглядзім некаторыя сапраўдныя і несапраўдныя выпадкі.
Дапушчальна: Пасля аб'явы функцый справядлівыя -
INT сума (ідэалам а = 10, б INT = 20, Int з = 30); INT сума (Int а, бы INT = 20, Int з = 30); INT сума (Int, Int а б, Int з = 30);
Несапраўдныя: Пасля заявы функцыі з'яўляюцца несапраўднымі -
/ * Паколькі мае значэнне па змаўчанні прысвойваецца, усё * Аргументы пасля таго, як (у дадзеным выпадку, бы і ў) павінны мець * Значэнні па змаўчанні прысвойваецца * / INT сума (а = INT 10, INT B, INT C = 30); / * Паколькі б мае значэнне па змаўчанні прысвойваецца, усё * Аргументы пасля Ь (у дадзеным выпадку з) павінны мець * Значэнні па змаўчанні прысвойваецца * / INT сума (Int А, Int B = 20, Int с); / * Паколькі мае значэнне па змаўчанні прысвойваецца, усё * Аргументы пасля таго, як (у дадзеным выпадку, бы і ў) павінны мець * Значэнні па змаўчанні прысвойваецца, б мае значэнне па змаўчанні, але * З не мае, вось чаму гэта таксама несапраўдныя * / INT сума (ідэалам а = 10, б = INT 20, INT с);
Пакінуць каментар