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

时间:2012-08-30 02:25:01

标签: c++ function-pointers

我正在尝试使用成员函数指针进行一些测试。这段代码有什么问题? bigCat.*pcat();语句无法编译。

class cat {
public:
   void walk() {
      printf("cat is walking \n");
   }
};

int main(){
   cat bigCat;
   void (cat::*pcat)();
   pcat = &cat::walk;
   bigCat.*pcat();
}

1 个答案:

答案 0 :(得分:88)

需要更多括号:

(bigCat.*pcat)();
^            ^

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