Výchozí argumenty programování v C ++ (parametry)

V tomto kurzu se naučíme výchozí argumenty C ++ a jejich práci pomocí příkladů.

V programování v C ++ můžeme poskytnout výchozí hodnoty pro funkční parametry.

Pokud je funkce s výchozími argumenty volána bez předávání argumentů, použijí se výchozí parametry.

Pokud jsou však při volání funkce předány argumenty, výchozí argumenty jsou ignorovány.

Práce s výchozími argumenty

Jak fungují výchozí argumenty v C ++

Můžeme pochopit fungování výchozích argumentů z obrázku výše:

  1. Když temp()je volána, funkce používá výchozí parametry.
  2. Při temp(6)volání se první argument stane, 6zatímco pro druhý parametr se použije výchozí hodnota.
  3. Při temp(6, -2.3)volání jsou přepsány oba výchozí parametry, což má za následek i = 6a f = -2.3.
  4. Když temp(3.4)je předán, funkce se chová nežádoucím způsobem, protože druhý argument nelze předat bez předání prvního argumentu.
    Proto 3.4je předán jako první argument. Protože první argument byl definován jako int, hodnota, která je ve skutečnosti předána, je 3.

Příklad: Výchozí 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ýstup

 Žádný argument předán: *** První argument předán: ### Oba předané argumenty: $$$$$

Tento program funguje takto:

  1. display()je volána bez předání jakýchkoli argumentů. V tomto případě display()použije výchozí parametry c = '*'i n = 1.
  2. display('#')je volán pouze s jedním argumentem. V tomto případě se stane první '#'. Druhý výchozí parametr n = 1je zachován.
  3. display('#', count)je volán s oběma argumenty. V tomto případě se nepoužívají výchozí argumenty.

Můžeme také definovat výchozí parametry v samotné definici funkce. Níže uvedený program je ekvivalentní výše uvedenému.

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

Věci k zapamatování

  1. Jakmile pro parametr zadáme výchozí hodnotu, musí mít všechny následující parametry také výchozí hodnoty. Napří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. Pokud definujeme výchozí argumenty v definici funkce namísto prototypu funkce, musí být funkce definována před voláním funkce.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Zajímavé články...