Zadani argumenti za programiranje na C ++ (parametri)

U ovom uputstvu naučit ćemo zadane argumente C ++ i njihov rad uz pomoć primjera.

U programiranju na C ++ možemo zadati zadane vrijednosti za parametre funkcije.

Ako se funkcija sa zadanim argumentima pozove bez prosljeđivanja argumenata, tada se koriste zadani parametri.

Međutim, ako se tijekom pozivanja funkcije predaju argumenti, zadani se argumenti zanemaruju.

Obrada zadanih argumenata

Kako zadani argumenti rade u C ++-u

Rad gornjih argumenata možemo razumjeti sa gornje slike:

  1. Kada temp()se pozove, funkcija koristi oba zadana parametra.
  2. Kada temp(6)se pozove, prvi argument postaje 6dok se zadana vrijednost koristi za drugi parametar.
  3. Kada temp(6, -2.3)se pozove, oba zadana parametra se poništavaju, što rezultira i = 6i f = -2.3.
  4. Kada temp(3.4)se proslijedi, funkcija se ponaša na neželjeni način jer se drugi argument ne može proslijediti bez prosljeđivanja prvog argumenta.
    Stoga 3.4se donosi kao prvi argument. Budući da je prvi argument definiran kao int, vrijednost koja se zapravo prenosi je 3.

Primjer: zadani 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; )

Izlaz

 Nijedan argument nije proslijeđen: *** Prvi argument je proslijeđen: ### Oba argumenta su proslijeđena: $$$$$

Evo kako ovaj program funkcionira:

  1. display()poziva se bez prosljeđivanja argumenata. U ovom slučaju display()koristi i zadane parametre c = '*'i n = 1.
  2. display('#')poziva se samo s jednim argumentom. U ovom slučaju, prvi postaje '#'. Zadržava se drugi zadani parametar n = 1.
  3. display('#', count)poziva se s oba argumenta. U ovom se slučaju ne koriste zadani argumenti.

Također možemo definirati zadane parametre u samoj definiciji funkcije. Program u nastavku ekvivalentan je gore navedenom.

 #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 koje treba zapamtiti

  1. Jednom kada pružimo zadanu vrijednost za parametar, svi sljedeći parametri moraju imati i zadane vrijednosti. Na primjer,
     // 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. Ako definiramo zadane argumente u definiciji funkcije umjesto prototipa funkcije, tada funkcija mora biti definirana prije poziva funkcije.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Zanimljivi članci...