Privzeti argumenti za programiranje C ++ (parametri)

V tej vadnici bomo s pomočjo primerov spoznali privzete argumente C ++ in njihovo delovanje.

Pri programiranju na C ++ lahko določimo privzete vrednosti za parametre funkcije.

Če je funkcija s privzetimi argumenti poklicana brez podajanja argumentov, se uporabijo privzeti parametri.

Če pa se med klicanjem funkcije posredujejo argumenti, se privzeti argumenti prezrejo.

Delovanje privzetih argumentov

Kako privzeti argumenti delujejo v C ++

Delovanje privzetih argumentov lahko razumemo s zgornje slike:

  1. Ko temp()je poklican, funkcija uporablja privzeta parametra.
  2. Ko temp(6)je poklican, postane prvi argument, 6medtem ko se za drugi parameter uporablja privzeta vrednost.
  3. Ko temp(6, -2.3)je poklican, sta oba privzeta parametra preglašena, kar ima za posledico i = 6in f = -2.3.
  4. Ko temp(3.4)je funkcija posredovana, se obnaša na neželen način, ker drugega argumenta ni mogoče posredovati brez posredovanja prvega argumenta.
    Zato 3.4se poda kot prvi argument. Ker je bil prvi argument definiran kot intvrednost, ki je dejansko opravil je 3.

Primer: Privzeti argument

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

Izhod

 Noben argument ni bil poslan: *** Prvi argument je bil poslan: ### Predana oba argumenta: $$$$$

Ta program deluje tako:

  1. display()se pokliče brez podajanja argumentov. V tem primeru display()uporablja privzete parametre c = '*'in n = 1.
  2. display('#')se pokliče z enim samim argumentom. V tem primeru prvi postane '#'. Ohrani se drugi privzeti parameter n = 1.
  3. display('#', count)se pokliče z obema argumentoma. V tem primeru se ne uporabljajo privzeti argumenti.

Privzete parametre lahko definiramo tudi v sami definiciji funkcije. Spodnji program je enakovreden zgornjemu.

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

Stvari, ki si jih je treba zapomniti

  1. Ko za parameter določimo privzeto vrednost, morajo imeti tudi vsi naslednji parametri privzete vrednosti. Na primer
     // 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. Če v definiciji funkcije namesto prototipa funkcije definiramo privzete argumente, je treba funkcijo definirati pred klicem funkcije.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Zanimive Članki...