.*运算符表示什么意思?好几次遇到.*,但不知道如何使用。后来发现,可以体现在成员函数指针的调用上。
1,函数指针指向公有非静态的成员函数。此时,必须创建一个对象来调用函数指针。
class Container{
public:
void print(){
printf("printf()");
}
}; int main()
{
void (Container::*p)(); //指明是指向成员函数的指针
p = &Container::print;
Container c;
(c.*p)();
return ;
}
2,函数指针指向静态函数。
class Container{
public:
static void print(){
printf("printf()");
}
};
int main()
{
void (*p)();
p = &Container::print;
p();
return ;
}