mam wskaźnik do funkcji składowej określonej w obrębie klasy, np:Wywołanie wskaźnik do członka funkcja C++
class Example {
void (Example::*foo)();
void foo2();
};
W moim głównym kodu, a następnie ustawić foo jako:
Example *a;
a->foo = &Example::foo2;
jednak gdy próbuję zadzwonić foo:
a->foo();
pojawia się następujący błąd czasu kompilacji: „error: wyrażenie poprzedzające nawiasy pozornego połączenia musi mieć (wskaźnik na zadanie) typ funkcji ". Zakładam, że gdzieś mam błędną składnię, czy ktoś może mi to wskazać?
'pracuje (a -> * (a-> foo))()' - myślę? –
Niestety, to nie działa. a -> * foo() zwraca "error: foo is undefined", a a -> * (a-> foo)() podaje oryginalny komunikat o błędzie. – wolfPack88
potrzebujesz parens wokół 'a -> * (a-> foo)' z powodu tego, jak działa pierwszeństwo operatora –