Wskaznik na obiekt a przeciazony operator ()

0

Otóż mam drobny problem wynikający z przeciążenia operatora () na wskaźnik na obiekt. Nie rozumiem dlaczego nie działa, ponieważ dla zwykłego obiektu działa bez zarzutów.

Class Car{
public:      
       Car(){}
       void operator ()();
};

void Car::operator()(){
	cout<<"Samachod pojechal"<<endl;
}

int main(){
	Car *c=new Car;
	c();
	return 0;
}

Pojawia sie przy najechaniu na c(); - parsing expression preceding parentheses of apparent call must have (pointer-to) function type

Natomiast przy probie kompilacji - error C2064: term does not evaluate to a function taking 0 arguments

Dziękuje za każdą pomoc

0

Bo ten operator nie jest przeciążony dla typu Car * tylko Car. (*c)(); powinno działać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1