Ich habe eine Klasse mit zwei Konstruktoren, einer ohne Argumente und einer mit einem Argument.
Das Erstellen von Objekten mit dem Konstruktor, der ein Argument verwendet, funktioniert wie erwartet. Wenn ich jedoch Objekte mit dem Konstruktor erstelle, der keine Argumente akzeptiert, wird eine Fehlermeldung angezeigt.
Zum Beispiel, wenn ich diesen Code kompiliere (mit 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;
}
... ich bekomme folgenden Fehler:
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 ()()’
Warum ist das so und wie bringe ich es zum Laufen?