Ich versuche, einige Tests mit Elementfunktionszeiger durchzuführen. Was ist los mit diesem Code? Die Anweisung bigCat.*pcat();
wird nicht kompiliert.
class cat {
public:
void walk() {
printf("cat is walking \n");
}
};
int main(){
cat bigCat;
void (cat::*pcat)();
pcat = &cat::walk;
bigCat.*pcat();
}
Weitere Klammern sind erforderlich:
(bigCat.*pcat)();
^ ^
Der Funktionsaufruf (()
) hat eine höhere Priorität als der Bindungsoperator Zeiger auf Element (.*
). Die unären Operatoren haben eine höhere Priorität als die binären Operatoren.