您的位置:首页 > 其它

类的成员函数指针的使用方法

2017-03-29 13:56 302 查看
函数指针主要的目的是实现与运用相互分离,类的成员函数封装在类里面,运行需要相应的对象来调用,所以在调用这个类的成员函数时候,需要类的函数地址和这个类的对象。

以下是实现的类:

class A
{
public:
void DoSth()
{
printf("A-DoSth");
}
};

以下是调用的类:

typedef void (A::*PFun)(void);//声明类的函数指针

class B
{
public:
B(void):pA(NULL),pFun(NULL)
{
}

~B(void)

{

}

void SetAddr(A* pA,PFun pAddr)
{
this->pA = pA;
pFun = pAddr;
}

void RunFun()
{
if(pA&&pFun)
(pA->*pFun)();
}
private:
A* pA;
PFun pFun;
};

以下是综合使用部分:

A a;
B b;

PFun pAddr = &A::DoSth;//类的成员函数地址

b.SetAddr(&a,pAddr);

b.RunFun();

总结:

使用函数指针多数在多线程里。

参考:

高质量程序设计指南-C++/C 语言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: