类的静态成员函数采用与一般函数指针相同的调用方式,而受this指针的影响,类的非静态成员函数与一般函数指针是不兼容的。指向类的非静态成员函数的指针,在声明时就需要添加类名。
/*指向类的非静态成员函数的指针*/typedef int(CA::*pClassFun)(int, int);
/*指向一般函数的指针*/ typedef int(*pGeneralFun)(int, int);
/*类外部的接口函数,实现对类的非静态成员函数的封装*/ int Result(CA* pA, pClassFun fun, int a, int b) { return (pA->*fun)(a, b); }
/*类内部的接口函数,实现对类的非静态成员函数的封装*/ int Result(pClassFun fun, int a, int b) { return (this->*fun)(a, b); }
本文探讨了类的成员函数指针与一般函数指针的区别,重点讲解了如何声明及使用指向非静态成员函数的指针,并通过封装函数来调用这些成员函数。
1964

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



