如何通过成员函数指针调用?

我想用成员函数指针做一些testing。 这段代码有什么问题? bigCat.*pcat(); 语句不编译。

 class cat { public: void walk() { printf("cat is walking \n"); } }; int main(){ cat bigCat; void (cat::*pcat)(); pcat = &cat::walk; bigCat.*pcat(); } 

更多的括号是必需的:

 (bigCat.*pcat)(); ^ ^ 

函数调用( () )比指向成员的绑定操作符( .* )具有更高的优先级。 一元运算符优先于二元运算符。