I denne opplæringen vil vi lære C ++ standardargumenter og deres arbeid ved hjelp av eksempler.
I C ++ programmering kan vi gi standardverdier for funksjonsparametere.
Hvis en funksjon med standardargumenter kalles uten å sende argumenter, brukes standardparametrene.
Imidlertid, hvis argumenter sendes mens du ringer til funksjonen, ignoreres standardargumentene.
Arbeider med standardargumenter

Vi kan forstå hvordan standardargumenter fungerer fra bildet ovenfor:
- Når
temp()
kalles, brukes begge standardparametrene av funksjonen. - Når
temp(6)
kalles, blir det første argumentet6
mens standardverdien brukes til den andre parameteren. - Når
temp(6, -2.3)
kalles, overstyres begge standardparametrene, noe som resulterer ii = 6
ogf = -2.3
. - Når
temp(3.4)
passerer, oppfører funksjonen seg på en uønsket måte fordi det andre argumentet ikke kan overføres uten å passere det første argumentet.
Derfor3.4
blir bestått som det første argumentet. Siden det første argumentet er definert somint
, er verdien som faktisk sendes3
.
Eksempel: Standardargument
#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; )
Produksjon
Ingen argument bestått: *** Første argument bestått: ### Begge argumentene bestått: $$$$$
Slik fungerer dette programmet:
display()
kalles uten å føre noen argumenter.display()
Bruker i dette tilfellet både standardparametrenec = '*'
ogn = 1
.display('#')
kalles med bare ett argument. I dette tilfellet blir den første'#'
. Den andre standardparameterenn = 1
beholdes.display('#', count)
kalles med begge argumentene. I dette tilfellet brukes ikke standardargumenter.
Vi kan også definere standardparametrene i selve funksjonsdefinisjonen. Programmet nedenfor tilsvarer det ovenfor.
#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; )
Ting å huske
- Når vi har gitt en standardverdi for en parameter, må alle påfølgende parametere også ha standardverdier. For eksempel,
// 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);
- Hvis vi definerer standardargumentene i funksjonsdefinisjonen i stedet for funksjonsprototypen, må funksjonen defineres før funksjonsanropet.
// Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )