首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++语法

2013-08-01 
c++语法求助最近写一个软件,想用一个操作,但是C++语法不熟,不知道该如何解决,还请大侠帮忙。如下是我的需求

c++语法求助
最近写一个软件,想用一个操作,但是C++语法不熟,不知道该如何解决,还请大侠帮忙。如下是我的需求:
一个通信类:
Class Comm
{
public:
    typedef void (CLASS_X::*PFNCOMREQNOTIFY)(UINT8 ucEvt,void *pDat);
    std::queue<PFNCOMREQNOTIFY> pfnComReqQueue;
    void ComSndReq(UINT8 *pucBuf,UINT32 dwLen,PFNCOMREQNOTIFY pfnCb);
};
我以前只有一个CLASS_X会调用Comm类,调用时直接用:Comm.ComSndReq(pBuf,Len,CLASS_X::SndReqCB)就可以了。但是现在有好几个类都可能调用Comm类,这样的话那个:CLASS_X可能是A,B,C任意的类。此时PFNCOMREQNOTIFY就可能是CLASS_A::SndReqCB(),也可能是CLASS_B::SndReqCB(),那此时该如何写代码,才能让CLASS_X自动适应是哪一个类呢?
还望大侠指点,多谢多谢。 C++ 类
[解决办法]
CLASS_A, CLASS_B, CLASS_C ... 都从同一个类继承, 这个类只有一个纯虚的接口函数, 比如

class IClassX {
  public:
   virtual void some_func(UINT8 ucEvt,void *pDat) = 0;
};


[解决办法]
那你用委托吧.
http://www.adintr.com/mytranslate/fastdelegate.html 
前面有代码下载, 然后可以直接跳到 "代码使用方法" 看用法
[解决办法]
把 ComSndReq 做成函数模板,调用的时候现场推导类型。不过这样的话,那个 pfnComReqQueue 就用不上了,不知道你的应用里是不是必须用那个队列。

热点排行