当前位置:编程学习 > VC++ >>

vc++软件框架设计之函数指针

 

一定义

指向函数的指针。

 

二作用

实现回调。调用者通过被调用者的函数地址来调用被调用者的函数,调用者除了关注被调用者的函数地址外不需要关注被调用者的任何信息。

 

三应用场景代码

 #include <stdio.h>

 

 

 

class CHardWare

 

{

 

public:

 

         CHardWare();

 

         ~CHardWare();

 

         void (*NotifyUiLayer)(char* pMsg);

 

         void ReadUsbData();

 

};

 

 

 

CHardWare::CHardWare()

 

{

 

 

 

}

 

 

 

CHardWare::~CHardWare()

 

{

 

 

 

}

 

 

 

void CHardWare::ReadUsbData()

 

{

 

         int nTimes = 10;

 

         for ( int i = 0; i < nTimes; i++ )

 

         {

 

                   char szTemp[100];

 

                   sprintf(szTemp, "%s %d", "从usb设备读到数据",i);

 

                   NotifyUiLayer(szTemp);

 

         }

 

}

 

 

 

class CUi

 

{

 

public:

 

         CUi();

 

         ~CUi();

 

         static void UiRecvMsg(char* pMsg);

 

};

 

 

 

CUi::CUi()

 

{

 

 

 

}

 

 

 

CUi::~CUi()

 

{

 

 

 

}

 

 

 

void CUi::UiRecvMsg(char* pMsg)

 

{

 

         char szTemp[100];

 

         sprintf(szTemp, "%s%s\n", "UI层收到底层消息:",pMsg);

 

         printf(szTemp);

 

}

 

 

 

void main()

 

{

 

         CHardWare mCHardWare;

 

         mCHardWare.NotifyUiLayer = CUi::UiRecvMsg;

 

         mCHardWare.ReadUsbData();

 

         getchar();

 

}

 

摘自 yfh1985sdq的专栏

补充:软件开发 , Vc ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,