我试图做一些测试与成员函数指针。 什么是错的代码? 所述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();
声明并不编译。
class cat {
public:
void walk() {
printf("cat is walking \n");
}
};
int main(){
cat bigCat;
void (cat::*pcat)();
pcat = &cat::walk;
bigCat.*pcat();
}
更多的括号是必需的:
(bigCat.*pcat)();
^ ^
函数调用( ()
具有比指针到构件结合操作者更高的优先级( .*
)。 一元运算符具有比二元运算符优先级越高。