linux下C/C++开发小记4

前言

C++在导出类,供外部使用时,一旦当前接口不能满足需求,需要增加接口时,会带来很大的麻烦,正文中将展开介绍。

一、C++导出类的注意事项

在编写动态库时,需要考虑ABI问题,在这里不多bb直接上书本上的文字:
在这里插入图片描述
在这里插入图片描述

二、万不得已扩充接口方案

1.导出库中扩展子类

为保证原有导出类的结构不变,以前开发的功能正常使用,可以增加子类,在子类中扩充接口,实现新增需求。

+class NuDevPINPAD_API CNuDevPinPadEx:public CNuDevPinPad {
+public:
+    CNuDevPinPadEx(){}
+    virtual ~CNuDevPinPadEx(){ENTERING_LOG_TRACE(m_pLog);}
+    virtual int FuncExtra1(int nPara1,int nPara2) {
+        ENTERING_LOG_TRACE(m_pLog);
+        return 0;
+    }
+
+};

2.使用者使用新的子类

类的使用者可以为使用新的功能则必须使用新的类才能访问新增的接口,同时也可以访问原有的功能接口。

-  m_pPin = (CNuDevPinPad*)LoadDevice();
+  m_pPin = (CNuDevPinPadEx*)LoadDevice();
   if (NULL == m_pPin) {
     m_pLog->Error("InitDevice failed, load device dll failed");
     return WFS_ERR_USER_ERROR;
   }
+  m_pPin->FuncExtra1(0,1);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值