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

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

1,函数指针指向公有非静态的成员函数。此时,必须创建一个对象来调用函数指针。

 1 class Container{
 2 public:
 3     void print(){
 4         printf("printf()");
 5     }
 6 };
 7 
 8 int main()
 9 {
10     void (Container::*p)();             //指明是指向成员函数的指针
11     p = &Container::print;
12     Container c;
13     (c.*p)();
14     return 0;
15 }

2,函数指针指向静态函数。

 1 class Container{
 2 public:
 3     static void print(){
 4         printf("printf()");
 5     }
 6 };
 7 int main()
 8 {
 9     void (*p)();
10     p = &Container::print;
11     p();
12     return 0;
13 }
原文地址:https://www.cnblogs.com/letgo/p/5914119.html