C ++ programmēšanas noklusējuma argumenti (parametri)

Šajā apmācībā mēs uzzināsim C ++ noklusējuma argumentus un to darbību ar piemēru palīdzību.

Programmējot C ++, mēs varam nodrošināt funkciju parametru noklusējuma vērtības.

Ja tiek izsaukta funkcija ar noklusējuma argumentiem, nenododot argumentus, tiek izmantoti noklusējuma parametri.

Tomēr, ja argumenti tiek nodoti, izsaucot funkciju, noklusējuma argumenti tiek ignorēti.

Noklusējuma argumentu darbība

Kā noklusējuma argumenti darbojas C ++

Noklusējuma argumentu darbību mēs varam saprast no iepriekš redzamā attēla:

  1. Kad temp()tiek izsaukts, funkcija izmanto abus noklusējuma parametrus.
  2. Kad temp(6)tiek izsaukts, pirmais arguments kļūst, 6bet otrajam parametram tiek izmantota noklusējuma vērtība.
  3. Kad temp(6, -2.3)tiek izsaukts, abi noklusētie parametri tiek ignorēti, kā rezultātā rodas i = 6un f = -2.3.
  4. Kad tas temp(3.4)tiek nodots, funkcija rīkojas nevēlamā veidā, jo otro argumentu nevar nodot, neizlaižot pirmo argumentu.
    Tāpēc 3.4tiek nodots kā pirmais arguments. Tā kā pirmais arguments ir definēts kā int, faktiski nodotā ​​vērtība ir 3.

Piemērs: noklusējuma arguments

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

Rezultāts

 Nav iesniegts neviens arguments: *** Pirmais arguments: ### Abi argumenti: $$$$$

Šī programma darbojas šādi:

  1. display()tiek izsaukts, neizvirzot nevienu argumentu. Šajā gadījumā display()izmanto gan noklusējuma parametrus, c = '*'gan n = 1.
  2. display('#')tiek izsaukts tikai ar vienu argumentu. Šajā gadījumā pirmais kļūst '#'. Otrais noklusējuma parametrs n = 1tiek saglabāts.
  3. display('#', count)tiek izsaukts ar abiem argumentiem. Šajā gadījumā noklusējuma argumenti netiek izmantoti.

Noklusējuma parametrus mēs varam definēt arī pašā funkciju definīcijā. Zemāk redzamā programma ir līdzvērtīga iepriekšējai.

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

Atceramās lietas

  1. Kad mēs norādīsim parametra noklusējuma vērtību, visiem nākamajiem parametriem jābūt arī noklusējuma vērtībām. Piemēram,
     // 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. Ja mēs definējam noklusējuma argumentus funkcijas definīcijā, nevis funkcijas prototipā, tad funkcija ir jādefinē pirms funkcijas izsaukuma.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Interesanti raksti...