Numatytieji C ++ programavimo argumentai (parametrai)

Šioje pamokoje sužinosime C ++ numatytuosius argumentus ir jų darbą pavyzdžių pagalba.

Programuodami C ++, galime pateikti numatytąsias funkcijų parametrų reikšmes.

Jei funkcija su numatytaisiais argumentais iškviečiama neperduodant argumentų, naudojami numatytieji parametrai.

Tačiau jei argumentai perduodami iškviečiant funkciją, numatytieji argumentai nepaisomi.

Numatytųjų argumentų veikimas

Kaip numatytieji argumentai veikia C ++

Numatytųjų argumentų veikimą galime suprasti iš aukščiau esančio paveikslėlio:

  1. Kai temp()iškviečiama, funkcija naudoja abu numatytuosius parametrus.
  2. Kai temp(6)iškviečiamas, pirmasis argumentas tampa 6tuo metu, kai numatytoji reikšmė naudojama antram parametrui.
  3. Kai temp(6, -2.3)iškviečiama, abu numatytieji parametrai yra nepaisomi, todėl gaunama i = 6ir f = -2.3.
  4. Kai temp(3.4)bus perduota, funkcija elgsis nepageidaujamai, nes antrojo argumento negalima perduoti neperdavus pirmojo argumento.
    Todėl 3.4yra pateiktas kaip pirmasis argumentas. Kadangi pirmasis argumentas buvo apibrėžtas kaip int, iš tikrųjų perduodama vertė yra 3.

Pavyzdys: numatytasis argumentas

 #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; )

Rezultatas

 Nepateiktas nė vienas argumentas: *** Pirmas argumentas perduotas: ### Abu argumentai perduoti: $$$$$

Štai kaip ši programa veikia:

  1. display()yra iškviečiamas nepateikus jokių argumentų. Šiuo atveju display()naudoja ir numatytuosius parametrus, c = '*'ir n = 1.
  2. display('#')vadinamas tik vienu argumentu. Šiuo atveju pirmasis tampa '#'. Antrasis numatytasis parametras n = 1išlaikomas.
  3. display('#', count)vadinamas abiem argumentais. Šiuo atveju numatytieji argumentai nenaudojami.

Taip pat numatytuosius parametrus galime apibrėžti pačiame funkcijos apibrėžime. Žemiau pateikiama programa yra tolygi aukščiau esančiai.

 #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; )

Ką reikia atsiminti

  1. Kai pateiksime numatytąją parametro vertę, visi vėlesni parametrai taip pat turi turėti numatytąsias reikšmes. Pavyzdžiui,
     // 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. Jei mes nustatome numatytuosius argumentus funkcijos apibrėžime, o ne funkcijos prototipe, tada funkcija turi būti apibrėžta prieš funkcijos iškvietimą.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Įdomios straipsniai...