C++多态(虚函数)在自动化设备中的应用

现在自动化设备的生产力工具基本是Windows一家独大,期待鸿蒙早日赶上!

既然是Windows主力,那么C#和C++是跨不过去的坎,我们只谈C++,只看性能,只为客户考虑效率,C#和JAVA我们都看不上!

现在自动化设备电机的控制一般有脉冲和总线方式,对PC程序来讲就是控制卡或者软实时的问题,假如我们有2个设备,脉冲卡是不同的供应商,那么程序如何统一起来?这里初步分享一下。

1、定义统一接口,然后上层调用时通过宏定义或者变量来区分不同的厂家,这里以获取卡的id字符串为例做个简单说明:

std::string getVendorId(void)
{
#ifdef VENDOR1
    return "vendor1";
#else
    return "vendor2";
#endif
}


这是C语言的实现思想,那么能否用C++的多态方法呢?答案显示是可以的。

2、使用虚函数实现

定义接口:

class Base{
public:
    virtual std::string getVendorId(void) = 0;
}

然后根据卡实现不同的子类:

class Vendor1:public Base{
public:
    std::string getVendorId(void){return "Vendor1";}
}

class Vendor2:public Base{
public:
    std::string getVendorId(void){return "Vendor2";}
}

那么实际用的时候,只要区分对象就行了:

std::string getId(Base *p)
{
    return p->getVendorId();
}
Base *vendor1 = new Vendor1();
Base *vendor2 = new Vendor2();

// 通过传入不同的对象得到不同的卡id:
getId(vendor1);
getId(vendor2);

多态意思就是:控制卡是一个对象,但是控制卡有雷赛牌、众为兴牌、固高牌,有脉冲型、总线型,他是有多种形态的。

本文为3YL原创,转载无需联系,但请注明来自labisart.com。

原创文章不易,如果觉得有帮助,可打赏或点击右侧广告支持:

查看打赏记录

发表评论请遵守党国法律!后台审核后方可显示!
  • 最新评论
  • 总共0条评论
  • Blog v1.1© 2024 labisart.com 版权所有 | 联系:labartwork@163.com