Argumentos Posicionales y por Defecto
Desliza para mostrar el menú
Argumentos posicionales
Argumentos posicionales son una forma de pasar valores a una función en un orden específico según la firma de la función. Los valores se asocian con los parámetros de acuerdo con sus posiciones en la lista de parámetros de la firma de la función. La posición de cada argumento determina a qué parámetro corresponde.
main.cpp
1234567891011121314151617181920#include <iostream> // Function that takes two positional arguments float divide(float a, float b) { if (b == 0) return 0; return a / b; } int main() { float x = 8; float y = 4; // Calling the 'divide' function with two positional arguments float result = divide(x, y); std::cout << result << std::endl; }
Puedes realizar un pequeño experimento: cambia el orden de los argumentos al pasar a la función (usa divide (y, x) en lugar de divide(x, y)), y verás que el resultado ha cambiado. Esta es precisamente la esencia de los argumentos posicionales: el orden en que se pasan los parámetros a la función es importante y afecta directamente su resultado.
Argumentos predeterminados
Argumentos predeterminados permiten asignar valores por defecto a los parámetros de una función. Si una función se llama sin proporcionar todos los argumentos, los que faltan usan sus valores predeterminados. Para establecer un valor predeterminado, simplemente asigna un valor al parámetro directamente en la declaración de la función.
main.cpp
12345678910111213141516171819202122#include <iostream> // Default value is set for the third parameter float divide(float a, float b, bool terminate = true) { if (b == 0) { if (terminate) return 0; return a / 0.000001; // Prevent crash by using a very small number } return a / b; } int main() { std::cout << divide(10, 2) << std::endl; // Normal division std::cout << divide(10, 0) << std::endl; // Default behavior (error) std::cout << divide(10, 0, false) << std::endl; // Forced division }
La función divide() divide un número por otro.
Si el denominador (b) es cero:
terminate = true→ devuelve0terminate = false→ divide por un número muy pequeño para evitar un error
El parámetro terminate tiene un valor predeterminado de true, por lo que puede omitirse. Establece terminate = false para continuar el cálculo en lugar de detenerlo.
Es importante que todos los argumentos predeterminados estén ubicados después de los posicionales en la lista de parámetros. De lo contrario, el compilador generará un error.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla