今天在网上看了这方面的资料,自己也想总结下:
1.普通函数指针不能付给类的成员函数;要用类指针调用类成员函数(不能满足三个条件1参数2返回值3他的类)
2类成员指针:
定义:
指向值的类型 类名::* 指针名;
short Screen::*ps_Screen=&Screen::_height;
3类成员函数的指针:
定义:
返回值类型 (类名::*指针名)(参数列表);
int (Screen::*p)()=0; //可以用0初始化 ;
注:付值=&Screen::成员函数名;
可以用typedef简化
typedef int &(Screen::*q)();
q next=&Screen::forward;
4使用指向类成员的指针
类实例名->*指针名//成员变量
(类实例名::*指针名)();//成员函数
注:如果
类实例名::*指针名();不行,会被解释为
类实例名::*(指针名());的
5静态类成员的指针
class CAA
{
public:
int aa;
};
int CAA::*p = &CTdate::aa;
int CAA::*p2 = &CTdate::aa;
void main(void)
{
CAA a;
a.*p = 6;
a.*p2 = 5;
}