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:
- Kun
temp()kutsutaan, toiminto käyttää molempia oletusparametreja. - Kun
temp(6)kutsutaan, ensimmäisestä argumentista tulee6samalla kun oletusarvoa käytetään toiselle parametrille. - Kun
temp(6, -2.3)kutsutaan, molemmat oletusparametrit ohitetaan, mikä johtaai = 6jaf = -2.3. - 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.
Siksi3.4välitetään ensimmäisenä argumenttina. Koska ensimmäinen argumentti on määriteltyint, todellisuudessa välitettävä arvo on3.
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:
display()kutsutaan välittämättä mitään argumentteja. Tässä tapauksessadisplay()käyttää sekä oletusparametrejac = '*'ettän = 1.display('#')kutsutaan vain yhdellä argumentilla. Tässä tapauksessa ensimmäisestä tulee'#'. Toinen oletusparametrin = 1säilytetään.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
- 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); - 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 )








