如何在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因为我不知道如何 声明形式参数的类型。我可能需要定义一些类型 这将对通用参数列表和警报通用列表进行建模。谁能 给我一个建议怎么做?预先感谢您的任何想法。

解决方法

您可以使用多态性来做到这一点:定义<custom-element [ngrxEnableFocusTracking]="true"></custom-element>BaseParam类,并使用指向它们的指针BaseAlarm作为函数的参数。

或者,您可以使用std::variant中的vector