Argumentos predeterminados de programación de C ++ (parámetros)

En este tutorial, aprenderemos los argumentos predeterminados de C ++ y su funcionamiento con la ayuda de ejemplos.

En la programación C ++, podemos proporcionar valores predeterminados para los parámetros de función.

Si se llama a una función con argumentos predeterminados sin pasar argumentos, se utilizan los parámetros predeterminados.

Sin embargo, si se pasan argumentos mientras se llama a la función, se ignoran los argumentos predeterminados.

Trabajo de argumentos predeterminados

Cómo funcionan los argumentos predeterminados en C ++

Podemos entender el funcionamiento de los argumentos predeterminados de la imagen de arriba:

  1. Cuando temp()se llama, la función utiliza ambos parámetros predeterminados.
  2. Cuando temp(6)se llama, el primer argumento se convierte en 6mientras que el valor predeterminado se usa para el segundo parámetro.
  3. Cuando temp(6, -2.3)se llama, se anulan los dos parámetros predeterminados, lo que da como resultado i = 6y f = -2.3.
  4. Cuando temp(3.4)se pasa, la función se comporta de una manera no deseada porque el segundo argumento no se puede pasar sin pasar el primer argumento.
    Por tanto, 3.4se pasa como primer argumento. Dado que el primer argumento se ha definido como int, el valor que se pasa realmente es 3.

Ejemplo: argumento predeterminado

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

Salida

 Ningún argumento pasado: *** Primer argumento pasado: ### Ambos argumentos pasados: $$$$$

Así es como funciona este programa:

  1. display()se llama sin pasar ningún argumento. En este caso, display()utiliza los parámetros predeterminados c = '*'y n = 1.
  2. display('#')se llama con un solo argumento. En este caso, el primero se convierte en '#'. Se conserva el segundo parámetro predeterminado n = 1.
  3. display('#', count)se llama con ambos argumentos. En este caso, no se utilizan argumentos predeterminados.

También podemos definir los parámetros predeterminados en la propia definición de la función. El programa siguiente es equivalente al anterior.

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

Cosas para recordar

  1. Una vez que proporcionamos un valor predeterminado para un parámetro, todos los parámetros posteriores también deben tener valores predeterminados. Por ejemplo,
     // 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. Si estamos definiendo los argumentos predeterminados en la definición de la función en lugar del prototipo de la función, entonces la función debe definirse antes de la llamada a la función.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Articulos interesantes...