如何通过成员函数指针调用?
我想用成员函数指针做一些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)(); ^ ^
函数调用( ()
)比指向成员的绑定操作符( .*
)具有更高的优先级。 一元运算符优先于二元运算符。