Standaardargumenten (parameters) voor C ++ programmeren

In deze zelfstudie leren we de standaardargumenten van C ++ en hun werking met behulp van voorbeelden.

In C ++ - programmering kunnen we standaardwaarden voor functieparameters opgeven.

Als een functie met standaardargumenten wordt aangeroepen zonder argumenten door te geven, worden de standaardparameters gebruikt.

Als er echter argumenten worden doorgegeven tijdens het aanroepen van de functie, worden de standaardargumenten genegeerd.

Werken met standaardargumenten

Hoe standaardargumenten werken in C ++

We kunnen de werking van standaardargumenten uit de bovenstaande afbeelding begrijpen:

  1. Wanneer temp()wordt aangeroepen, worden beide standaardparameters gebruikt door de functie.
  2. Wanneer temp(6)wordt aangeroepen, wordt het eerste argument 6terwijl de standaardwaarde wordt gebruikt voor de tweede parameter.
  3. Wanneer temp(6, -2.3)wordt aangeroepen, worden beide standaardparameters overschreven, wat resulteert in i = 6en f = -2.3.
  4. Wanneer temp(3.4)wordt doorgegeven, gedraagt ​​de functie zich op een ongewenste manier omdat het tweede argument niet kan worden doorgegeven zonder het eerste argument.
    Daarom 3.4wordt doorgegeven als het eerste argument. Aangezien het eerste argument is gedefinieerd als int, is de waarde die daadwerkelijk wordt doorgegeven 3.

Voorbeeld: standaardargument

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

Uitvoer

 Geen argument doorgegeven: *** Eerste argument doorgegeven: ### Beide argumenten doorgegeven: $$$$$

Hier is hoe dit programma werkt:

  1. display()wordt aangeroepen zonder argumenten door te geven. display()Gebruikt in dit geval zowel de standaardparameters c = '*'als n = 1.
  2. display('#')wordt aangeroepen met slechts één argument. In dit geval wordt de eerste '#'. De tweede standaardparameter n = 1blijft behouden.
  3. display('#', count)wordt aangeroepen met beide argumenten. In dit geval worden geen standaardargumenten gebruikt.

We kunnen ook de standaardparameters in de functiedefinitie zelf definiëren. Het onderstaande programma is gelijk aan het bovenstaande.

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

Dingen om te onthouden

  1. Zodra we een standaardwaarde voor een parameter hebben opgegeven, moeten alle volgende parameters ook standaardwaarden hebben. Bijvoorbeeld,
     // 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. Als we de standaardargumenten in de functiedefinitie definiëren in plaats van het functieprototype, dan moet de functie worden gedefinieerd vóór de functieaanroep.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Interessante artikelen...