Estoy intentando crear un constructor con un valor predeterminado. La complicación proviene del uso de encabezados separados y archivos de códigos para la clase. Tengo un archivo de cabecera que contiene:Archivo de encabezado de valor predeterminado del constructor C++
class foo {
bool dbg;
public:
foo(bool debug = false);
}
Y un archivo de código que contiene:
foo::foo(bool debug = false) {
dbg = debug;
}
Cuando intento compilar con g ++ (es decir g++ -c foo.cc
), da un error:
foo.cc:373:65: error: default argument given for parameter 1 of ‘foo::foo(bool)’
foo.h:66:4: error: after previous specification in ‘foo::foo(bool)’
¿Qué estoy haciendo mal?
Gracias. Funciona :). Como puede ver en mi ejemplo, estoy haciendo esto para que se pueda proporcionar cierta información de depuración si es necesario. ¿Existe una forma recomendada de implementar esto, si no a través de valores predeterminados en los constructores? – Clivest
@nbt A diferencia de la cadena de constructores? ¿Especialmente cuando hay muchos miembros que necesitan inicializarse? Me parece que esto es un beneficio pragmático para los valores de parámetro predeterminados en los constructores. – ybakos