Estoy teniendo un problema con el parámetro de la función opcional en C++Pasando parámetro opcional por referencia en C++
Lo que estoy tratando de hacer es función con parámetro opcional que se pasa por referencia escribir, de modo que pueda Úselo de dos maneras (1) y (2), pero en (2) realmente no me importa cuál es el valor de mFoobar
.
que he probado tal código:
void foo(double &bar, double &foobar = NULL)
{
bar = 100;
foobar = 150;
}
int main()
{
double mBar(0),mFoobar(0);
foo(mBar,mFoobar); // (1)
cout << mBar << mFoobar;
mBar = 0;
mFoobar = 0;
foo(mBar); // (2)
cout << mBar << mFoobar;
return 0;
}
pero se estrella en
void foo(double &bar, double &foobar = NULL)
con el mensaje:
error: default argument for 'double& foobar' has type 'int'
¿Es posible resolverlo sin la sobrecarga de funciones?
Por supuesto que no - incluso si usted podría * * pasar una referencia NULL, lo ¿Crees que pasaría dentro de la función cuando trataste de asignarle un valor? –
Error de compilación no es un bloqueo. – kennytm
Su código no está "cayendo", está recibiendo un error de compilación. Un bloqueo solo puede ocurrir después de que haya construido completamente su programa e intentado ejecutarlo. –