Tengo una clase con dos constructores, uno que no toma argumentos y otro que toma un argumento.
Crear objetos usando el constructor que toma un argumento funciona como se esperaba. Sin embargo, si creo objetos usando el constructor que no toma argumentos, me sale un error.
Por ejemplo, si compilo este código (usando g ++ 4.0.1) ...
class Foo
{
public:
Foo() {};
Foo(int a) {};
void bar() {};
};
int main()
{
// this works...
Foo foo1(1);
foo1.bar();
// this does not...
Foo foo2();
foo2.bar();
return 0;
}
... Obtuve el siguiente error:
nonclass.cpp: In function ‘int main(int, const char**)’:
nonclass.cpp:17: error: request for member ‘bar’ in ‘foo2’, which is of non-class type ‘Foo ()()’
¿Por qué es esto y cómo lo hago funcionar?