Задани аргументи за програмирање на Ц ++ (параметри)

У овом упутству ћемо научити задате аргументе Ц ++ и њихов рад уз помоћ примера.

У програмирању на Ц ++, можемо пружити подразумеване вредности за параметре функције.

Ако се функција са подразумеваним аргументима позове без прослеђивања аргумената, тада се користе задани параметри.

Међутим, ако се током позивања функције проследе аргументи, подразумевани аргументи се занемарују.

Рад задатих аргумената

Како задати аргументи раде у Ц ++-у

Рад горњих аргумената можемо разумети са горње слике:

  1. Када temp()се позове, функција користи оба подразумевана параметра.
  2. Када temp(6)се позове, први аргумент постаје 6док се за други параметар користи подразумевана вредност.
  3. Када temp(6, -2.3)се позове, оба подразумевана параметра се поништавају, што резултира i = 6и f = -2.3.
  4. Када temp(3.4)се проследи, функција се понаша на нежељени начин јер се други аргумент не може проследити без преношења првог аргумента.
    Стога 3.4се предаје као први аргумент. Будући да је први аргумент дефинисан као int, вредност која се заправо преноси је 3.

Пример: Задани аргумент

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

Оутпут

 Ниједан аргумент није прослеђен: *** Први аргумент прослеђен: ### Оба прослеђена аргумента: $$$$$

Ево како овај програм функционише:

  1. display()се позива без проласка било каквих аргумената. У овом случају display()користи и подразумеване параметре c = '*'и n = 1.
  2. display('#')позива се само са једним аргументом. У овом случају први постаје '#'. Задржава се други задани параметар n = 1.
  3. display('#', count)се позива са оба аргумента. У овом случају се не користе задани аргументи.

Подразумеване параметре такође можемо дефинисати у самој дефиницији функције. Програм у наставку је еквивалентан ономе горе.

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

Ствари које треба запамтити

  1. Једном када пружимо подразумевану вредност за параметар, сви наредни параметри такође морају имати подразумеване вредности. На пример,
     // 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. Ако дефинишемо задане аргументе у дефиницији функције уместо прототипа функције, тада функција мора бити дефинисана пре позива функције.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Занимљиви Чланци...