Аргументи по програмиране на C ++ по подразбиране (параметри)

В този урок ще научим C ++ аргументи по подразбиране и тяхната работа с помощта на примери.

При програмирането на C ++ можем да предоставим стойности по подразбиране за функционалните параметри.

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

Ако обаче аргументите се предават при извикване на функцията, аргументите по подразбиране се игнорират.

Работа по аргументи по подразбиране

Как работят аргументите по подразбиране в C ++

Можем да разберем работата на аргументите по подразбиране от изображението по-горе:

  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 )

Интересни статии...