如何通过一个成员函数指针调用?(How to call through a member funct

2019-06-17 22:09发布

我试图做一些测试与成员函数指针。 什么是错的代码? 所述bigCat.*pcat(); 声明并不编译。

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

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

Answer 1:

更多的括号是必需的:

(bigCat.*pcat)();
^            ^

函数调用( ()具有比指针到构件结合操作者更高的优先级( .* )。 一元运算符具有比二元运算符优先级越高。



文章来源: How to call through a member function pointer?