Аргументы по умолчанию для программирования 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 )

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