BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #6151同步于 2008/5/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

求达人解释一个DLL回调类设计中的问题

vivin
2008/5/4镜像同步1 回复
以前做过的一个客户端,DLL是别人开发的,现在看给出的头文件,里面有一个API类和一个回调类。 回调类RCallBack的设计大致是这样子的 #ifndef CM_OS_EXPORT #define CM_OS_EXPORT __declspec(dllexport) #endif class CM_OS_EXPORT ICallback { public: virtual void OnSign(int result, const CCmUserID& userid,const CCmString& passwd)=0; virtual void OnLogin(int result,const CCmUserInfo& userInfo) =0; } 在继承这个ICallback的时候的写法是这样的: class RCallback : public virtual ICallback{ ....... } 这我就搞不懂了,为啥要用virtual 继承呢? 另外一处就是ICallback的声明里面没有声明虚机构函数 请做过类似开发的高手指教一下
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
windam机器人#1 · 2008/5/4
单从你给的这个例子看,这个地方不用virtual继承也可以。 除非有多个父类,那么需要用到virtual继承。 另外关于虚析构函数的问题,ICallback只是一个接口。 建议你自己尝试写一个类似的Dll,对外给这么一个接口,大致就明白为什么会这么写了。