Standaardargumenten voor programmeren in C++ (parameters)
C++ Programmering Standaardargumenten (Parameters)
In deze tutorial leren we C++ standaardargumenten en hun werking met behulp van voorbeelden.
In C++-programmering kunnen we standaardwaarden voor functieparameters leveren.
Als een functie met standaardargumenten wordt aangeroepen zonder het doorgeven van argumenten, dan worden de standaardparameters gebruikt.
Als er echter argumenten worden doorgegeven tijdens het aanroepen van de functie, worden de standaardargumenten genegeerd.
Werking van standaardargumenten
We kunnen de werking van standaardargumenten uit de bovenstaande afbeelding begrijpen:
- Wanneer
temp()
wordt aangeroepen, worden beide standaardparameters door de functie gebruikt. - Wanneer
temp(6)
wordt aangeroepen, wordt het eerste argument6
terwijl de standaardwaarde wordt gebruikt voor de tweede parameter. - Wanneer
temp(6, -2.3)
wordt aangeroepen, worden beide standaardparameters overschreven, wat resulteert ini = 6
enf = -2.3
. - 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 door te geven.
Daarom3.4
wordt doorgegeven als het eerste argument. Aangezien het eerste argument is gedefinieerd alsint
, de waarde die daadwerkelijk wordt doorgegeven is3
.
Voorbeeld:standaardargument
#include <iostream>
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
No argument passed: *** First argument passed: ### Both arguments passed: $$$$$
Hier is hoe dit programma werkt:
display()
wordt aangeroepen zonder enige argumenten door te geven. In dit gevaldisplay()
gebruikt beide standaard parametersc = '*'
enn = 1
.display('#')
wordt aangeroepen met slechts één argument. In dit geval wordt de eerste'#'
. De tweede standaardparametern = 1
wordt behouden.display('#', count)
wordt aangeroepen met beide argumenten. In dit geval worden standaardargumenten niet gebruikt.
We kunnen de standaardparameters ook definiëren in de functiedefinitie zelf. Het onderstaande programma is gelijk aan het bovenstaande.
#include <iostream>
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
- 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);
- Als we de standaardargumenten definiëren in de functiedefinitie 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 }
C Taal