J'essaie de faire des tests avec le pointeur de fonction membre. Quel est le problème avec ce code? L'instruction bigCat.*pcat();
ne se compile pas.
class cat {
public:
void walk() {
printf("cat is walking \n");
}
};
int main(){
cat bigCat;
void (cat::*pcat)();
pcat = &cat::walk;
bigCat.*pcat();
}
Plus de parenthèses sont nécessaires:
(bigCat.*pcat)();
^ ^
L'appel de fonction (()
) a une priorité plus élevée que l'opérateur de liaison pointeur-membre (.*
). Les opérateurs unaires ont une priorité plus élevée que les opérateurs binaires.