对象指针用于存放对象地址的变量。
成员函数指针用于存放函数代码首地址的变量。
函数名表示函数的代码在内存中的起始地址。调用函数的通常形式“函数名(参数表)”的实质就是“函数代码首地址(参数表)”。
详见代码:
#include <iostream>
using namespace std;
int main(){
Point a(4,5); //定义对象A
Point *p1 = &a; //定义对象指针并初始化
int (Point::*funcPtr)() const = &Point::getX(); //定义对象成员函数指针并初始化
cout<<(a.*funcPtr)()<<endl; //(1)使用成员函数指针和对象名访问成员函数
cout<< (p1->*funcPtr)()<<endl; //(2)使用成员函数指针和对象指针访问成员函数
cout<<a.getX()<<endl; //(1)使用对象名访问成员函数
cout<<p1->getX()<<endl; //(2)使用对象指针访问成员函数
}