首页 > 解决方案 > 如何在 C++ 中定义通用接口

问题描述

我在 C++ 中有以下抽象类

class Converter
{

    public:
        virtual void enable(void)                          = 0;
        virtual void setReferenceValue(double)             = 0;
        virtual void registerAlarmListener(AlarmListener*) = 0;
        virtual void confirmAlarm()                        = 0;
        virtual void notifyParameterChange()               = 0;
        virtual void update(void)                          = 0;

}

我的意图是这个抽象类将成为我应用程序中各种电力电子转换器的通用接口。不幸的是,当各种电力电子转换器具有一组参数和一组警报但这些组的项目取决于每种类型的转换器时,我遇到了一个问题,如何模拟一种情况。所以我不知道如何完全声明方法confirmAlarmnotifyParameterChange因为我不知道如何声明形式参数的类型。我可能需要定义一些类型来模拟一个常见的参数列表和常见的警报列表。谁能给我一个建议如何做到这一点?提前感谢您的任何想法。

标签: c++interfaceabstract-class

解决方案


您可以使用多态性来做到这一点:定义BaseParamBaseAlarm类并使用vector指向它们的指针作为函数的参数。

或者,您可以使用vectorstd ::variant


推荐阅读