Ho una classe con due costruttori, uno che non accetta argomenti e uno che accetta un argomento.
La creazione di oggetti mediante il costruttore che accetta un argomento funziona come previsto. Tuttavia, se creo oggetti utilizzando il costruttore che non accetta argomenti, viene visualizzato un errore.
Ad esempio, se compilo questo codice (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;
}
... Ottengo il seguente errore:
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 ()()’
Perché è questo e come posso farlo funzionare?