Argumentos Predeterminados de Funciones en C++: Cómo Funcionan y Mejores Prácticas
Argumentos Predeterminados de Funciones en C++
Explora cómo asignar valores predeterminados a parámetros de funciones en C++, con ejemplos paso a paso y pautas prácticas.
En C++, los parámetros de función pueden tener valores predeterminados. Cuando una llamada omite un argumento, el compilador sustituye el predeterminado. Si se suministra un argumento, el predeterminado se ignora.
Cómo Funcionan los Argumentos Predeterminados

Considera la siguiente ilustración:
temp()usa ambos predeterminados.temp(6)sobrescribe el primer parámetro; el segundo permanece predeterminado.temp(6, -2.3)proporciona valores para ambos, sobrescribiendo ambos predeterminados.- Llamar a
temp(3.4)pasa por error un double a un parámetro int. El compilador trunca el valor a3, demostrando que los tipos de argumentos deben coincidir con el orden de declaración.
Ejemplo: Usando Argumentos Predeterminados
#include <iostream> using namespace std; // Prototipo con argumentos predeterminados void mostrar(char = '*', int = 3); int main() { int cuenta = 5; cout << "Ningún argumento pasado: "; mostrar(); // usa '*', 3 cout << "Primer argumento pasado: "; mostrar('#'); // usa '#', 3 cout << "Ambos argumentos pasados: "; mostrar('$', cuenta); // usa '$', 5 return 0; } void mostrar(char c, int cuenta) { for(int i = 1; i <= cuenta; ++i) { cout << c; } cout << endl; }
Salida
Ningún argumento pasado: *** Primer argumento pasado: ### Ambos argumentos pasados: $$$$$
El programa se comporta de la siguiente manera:
mostrar()usa los predeterminadosc='*'ycuenta=3.mostrar('#')sobrescribe solo el primer argumento; el segundo permanece predeterminado.- Cuando se suministran ambos argumentos, los predeterminados se ignoran.
Definir los predeterminados directamente en la definición de la función también es válido y a menudo más claro:
#include <iostream> using namespace std; void mostrar(char c = '*', int cuenta = 3) { for(int i = 1; i <= cuenta; ++i) { cout << c; } cout << endl; } int main() { int cuenta = 5; cout << "Ningún argumento pasado: "; mostrar(); cout << "Primer argumento pasado: "; mostrar('#'); cout << "Ambos argumentos pasados: "; mostrar('$', cuenta); return 0; }
Puntos Clave a Recordar
- Después de que un parámetro recibe un valor predeterminado, cada parámetro siguiente también debe tener uno. Por ejemplo:
// Inválido void sumar(int a, int b = 3, int c, int d); // Válido void sumar(int a, int c, int b = 3, int d = 4); - Cuando los predeterminados se especifican en la definición en lugar del prototipo, la definición debe preceder a cualquier llamada. De lo contrario, el compilador emitirá un error.
Lenguaje C
- Dominando los Espacios de Nombres en C#: Organización, Ámbito y Mejores Prácticas
- Dominando los Operadores en C++: Guía Completa con Ejemplos Prácticos
- Comentarios en C++: Mejores Prácticas para Código Legible y Mantenible
- Cómo Pasar Arrays a Funciones en C++: Guía Práctica
- Dominando las plantillas de clase en C++: guía práctica
- Dominando los operadores en programación C: guía completa
- Cuatro patrones probados para funciones definidas por el usuario en C
- Dominar la programación en C: Tutorial completo para principiantes
- Dominando funciones en C: Estructura, declaración y mejores prácticas
- Dominando Argumentos Variables en C: Guía Práctica
- Lenguaje de Programación C++: Visión General y Características Clave