C ++ -ohjelmoinnin oletusargumentit (parametrit)

Tässä opetusohjelmassa opimme C ++ -oletusargumentit ja niiden työskentelyn esimerkkien avulla.

C ++ - ohjelmoinnissa voimme antaa oletusarvot toimintoparametreille.

Jos funktio, jolla on oletusargumentit, kutsutaan välittämättä argumentteja, käytetään oletusparametreja.

Jos argumentit välitetään funktiota kutsuttaessa, oletusargumentit jätetään kuitenkin huomioimatta.

Oletusargumenttien käsittely

Kuinka oletus argumentit toimivat C ++: ssa

Ymmärrämme oletus argumenttien toiminnan yllä olevasta kuvasta:

  1. Kun temp()kutsutaan, toiminto käyttää molempia oletusparametreja.
  2. Kun temp(6)kutsutaan, ensimmäisestä argumentista tulee 6samalla kun oletusarvoa käytetään toiselle parametrille.
  3. Kun temp(6, -2.3)kutsutaan, molemmat oletusparametrit ohitetaan, mikä johtaa i = 6ja f = -2.3.
  4. Kun se temp(3.4)on välitetty, funktio käyttäytyy ei-toivotulla tavalla, koska toista argumenttia ei voida välittää ohittamatta ensimmäistä argumenttia.
    Siksi 3.4välitetään ensimmäisenä argumenttina. Koska ensimmäinen argumentti on määritelty int, todellisuudessa välitettävä arvo on 3.

Esimerkki: Oletusargumentti

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

Tuotos

 Ei argumentteja läpäisty: *** Ensimmäinen argumentti hyväksytty: ### Molemmat argumentit hyväksytty: $$$$$

Näin tämä ohjelma toimii:

  1. display()kutsutaan välittämättä mitään argumentteja. Tässä tapauksessa display()käyttää sekä oletusparametreja c = '*'että n = 1.
  2. display('#')kutsutaan vain yhdellä argumentilla. Tässä tapauksessa ensimmäisestä tulee '#'. Toinen oletusparametri n = 1säilytetään.
  3. display('#', count)kutsutaan molemmilla argumenteilla. Tässä tapauksessa oletusargumentteja ei käytetä.

Voimme määrittää oletusparametrit myös itse toiminnon määrittelyssä. Alla oleva ohjelma vastaa yllä olevaa ohjelmaa.

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

Muistettavaa

  1. Kun olemme antaneet parametrille oletusarvon, kaikilla seuraavilla parametreilla on oltava myös oletusarvot. Esimerkiksi,
     // 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. Jos määritämme oletusargumentit funktion määritelmässä funktion prototyypin sijaan, funktio on määriteltävä ennen funktion kutsua.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Mielenkiintoisia artikkeleita...