Predvolené argumenty programovania v C ++ (parametre)

V tomto tutoriále sa naučíme predvolené argumenty C ++ a ich prácu pomocou príkladov.

V programovaní v C ++ môžeme poskytnúť predvolené hodnoty pre funkčné parametre.

Ak sa volá funkcia s predvolenými argumentmi bez odovzdávania argumentov, použijú sa predvolené parametre.

Ak sa však pri volaní funkcie odovzdajú argumenty, predvolené argumenty sa ignorujú.

Fungovanie predvolených argumentov

Ako fungujú predvolené argumenty v C ++

Fungovanie predvolených argumentov môžeme pochopiť z obrázku vyššie:

  1. Keď temp()sa zavolá, funkcia použije oba predvolené parametre.
  2. Keď temp(6)sa volá, prvý argument sa stane, 6kým sa pre druhý parameter použije predvolená hodnota.
  3. Pri temp(6, -2.3)volaní sú prepísané oba predvolené parametre, čo má za následok i = 6a f = -2.3.
  4. Pri temp(3.4)zadaní sa funkcia správa nežiaducim spôsobom, pretože bez odovzdania prvého argumentu nie je možné odovzdať druhý argument.
    Preto 3.4sa odovzdáva ako prvý argument. Pretože prvý argument bol definovaný ako int, hodnota, ktorá sa v skutočnosti odovzdá, je 3.

Príklad: Predvolený 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; )

Výkon

 Neposlal žiadny argument: *** Prvý zadaný argument: ### Oba zadané argumenty: $$$$$

Tento program funguje takto:

  1. display()sa volá bez zadania akýchkoľvek argumentov. V takom prípade display()použije predvolené parametre c = '*'aj n = 1.
  2. display('#')sa volá iba s jedným argumentom. V tomto prípade sa stane prvý '#'. Druhý predvolený parameter n = 1sa zachová.
  3. display('#', count)sa volá s oboma argumentmi. V takom prípade sa predvolené argumenty nepoužijú.

Predvolené parametre môžeme definovať aj v samotnej definícii funkcie. Program uvedený nižšie je ekvivalentom vyššie uvedeného programu.

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

Na čo treba pamätať

  1. Keď pre parameter zadáme predvolenú hodnotu, musia mať predvolené hodnoty aj všetky nasledujúce parametre. Napríklad,
     // 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. Ak definujeme predvolené argumenty v definícii funkcie namiesto prototypu funkcie, potom musí byť funkcia definovaná pred volaním funkcie.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Zaujímavé články...