Ebben az oktatóanyagban megtanuljuk a C ++ alapértelmezett argumentumait és azok működését példák segítségével.
A C ++ programozásban megadhatunk alapértelmezett értékeket a függvényparaméterekhez.
Ha az alapértelmezett argumentumokkal rendelkező függvényt argumentumok átadása nélkül hívják meg, akkor az alapértelmezett paramétereket kell használni.
Ha azonban argumentumokat adunk át a függvény meghívása közben, akkor az alapértelmezett argumentumokat figyelmen kívül hagyjuk.
Alapértelmezett argumentumok működése

Megértjük az alapértelmezett argumentumok működését a fenti képből:
- Amikor
temp()
meghívásra kerül, a függvény mindkét alapértelmezett paramétert használja. - Amikor
temp(6)
meghívja, az első argumentum lesz,6
míg a második paraméter az alapértelmezett értéket használja. - Amikor
temp(6, -2.3)
meghívják, mindkét alapértelmezett paraméter felülbírálódik, aminek eredményekénti = 6
ésf = -2.3
. - Ha
temp(3.4)
vezetünk, akkor a funkció viselkedik egy nemkívánatos módon, mert a második érvet nem hárítható át nem haladnak az első érv.
Ezért3.4
első érvként átadva. Mivel az első argumentumot úgy definiáltákint
, a ténylegesen átadott érték az3
.
Példa: Alapértelmezett argumentum
#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; )
Kimenet
Nincs argumentum: *** Első argumentum: ### Mindkét argumentum átadva: $$$$$
A program így működik:
display()
argumentum nélkül adják meg. Ebben az esetbendisplay()
is használ az alapértelmezett paramétereketc = '*'
ésn = 1
.display('#')
csak egyetlen érvvel hívják meg. Ebben az esetben az első válik'#'
. A második alapértelmezett paramétern = 1
megmarad.display('#', count)
mindkét argumentummal hívják meg. Ebben az esetben az alapértelmezett argumentumokat nem használják.
Magában a függvénydefinícióban definiálhatjuk az alapértelmezett paramétereket is. Az alábbi program egyenértékű a fenti programmal.
#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; )
Dolgok, amikre emlékezni kell
- Amint megadunk egy paraméter alapértelmezett értékét, minden további paraméternek rendelkeznie kell alapértelmezett értékkel is. Például,
// 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);
- Ha a függvény prototípusa helyett definiáljuk az alapértelmezett argumentumokat a függvénydefinícióban, akkor a függvényt a függvényhívás előtt meg kell határozni.
// Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )