#include<iostream>
using namespace std;
class MyClass
{
public:
int add(int a, int b)
{
cout << "call add" << endl;
return a + b;
}
};
void main()
{
MyClass my1;
MyClass *pmy = new MyClass;
my1.add(1, 2);
//cout << typeid(my1.add).name() << endl; //通过对象调用函数
cout << typeid(&MyClass::add).name() << endl; //无法直接防问
int(MyClass::*p)(int, int) = &MyClass::add;//创建一个函数指针存储指针类成员函数
//(my1.*p)(1, 2):注意调用的优先级顺序。
cout << (my1.*p)(1, 2) << endl;
cout << (pmy->*p)(2, 3) << endl;
cin.get();
}