J'ai une classe avec deux constructeurs, un qui ne prend aucun argument et un qui prend un argument.
La création d'objets à l'aide du constructeur qui prend un argument fonctionne comme prévu. Cependant, si je crée des objets à l'aide du constructeur qui ne prend aucun argument, j'obtiens une erreur.
Par exemple, si je compile ce code (en utilisant 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;
}
... j'obtiens l'erreur suivante:
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 ()()’
Pourquoi est-ce et comment puis-je le faire fonctionner?