Mam klasy z dwoma konstruktorami, jeden, który nie przyjmuje argumentów i jeden, który ma jeden argument.błąd: żądanie dla członka ".." w "..", który jest typu nieklasy
Tworzenie obiektów przy użyciu konstruktora, który przyjmuje jeden argument, działa zgodnie z oczekiwaniami. Jeśli jednak utworzę obiekty przy użyciu konstruktora, który nie przyjmuje argumentów, pojawia się błąd.
Na przykład, jeśli mogę skompilować ten kod (za pomocą 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;
}
... pojawia się następujący błąd:
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()()’
dlaczego jest to, i jak mogę to sprawić?
pokrewne: http://stackoverflow.com/q/2318650/69537 – Meysam