首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中定义公共接口

如何在C++中定义公共接口
EN

Stack Overflow用户
提问于 2020-10-30 00:56:32
回答 1查看 60关注 0票数 0

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

代码语言:javascript
复制
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方法,因为我不知道如何声明形参的类型。我可能需要定义一些类型,它将模拟通用的参数列表和通用的警报列表。有谁能给我一个建议如何做到这一点?提前感谢您的任何想法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-30 01:11:58

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

或者,您可以使用std::variantvector

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64595758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档