1。成员函数指针并不是普通的函数指针。
2。编译器提供了几个新的操作符来支持成员函数指针操作:
1) 操作符"::*"用来声明一个类成员函数指针,例如:
typedef void (Base::*PVVBASEMEMFUNC)(void); //Base is a class
2) 操作符"->*"用来通过对象指针调用类成员函数指针,例如:
//pBase is a Base pointer and well initialized
//pVIBaseMemFunc is a member function pointer and well initialized
(pBase->*pVIBaseMemFunc)();
3) 操作符".*"用来通过对象调用类成员函数指针,例如:
//baseObj is a Base object
//pVIBaseMemFunc is a member function pointer and well initialized
(baseObj.*pVIBaseMemFunc)();
3。成员函数指针是强类型的。
typedef void (Base::*PVVBASEMEMFUNC)(void);
typedef void (Derived::*PVVDERIVEMEMFUNC)(void);
PVVBASEMEMFUNC和PVVDERIVEMEMFUNC是两个不同类型的成员函数指针类型。
757

被折叠的 条评论
为什么被折叠?



