12,C++中 .* 可以出现在什么地方?有何作用?

.*运算符表示什么意思?好几次遇到.*,但不知道如何使用。后来发现,可以体现在成员函数指针的调用上。

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 ;
}
上一篇:0代码隐藏GroupedTableView上边多余的间隔


下一篇:JS创建类和对象(好多方法哟!)