我在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;
}我的目的是让这个抽象类成为我的应用程序中所有类型的电力电子转换器的公共接口。不幸的是,我遇到了一个问题,当所有类型的电力电子变换器都有一组参数和一组警报,但这些参数集的项目取决于每种类型的变换器时,如何对这种情况进行建模。所以我不知道如何完全声明confirmAlarm和notifyParameterChange方法,因为我不知道如何声明形参的类型。我可能需要定义一些类型,它将模拟通用的参数列表和通用的警报列表。有谁能给我一个建议如何做到这一点?提前感谢您的任何想法。
发布于 2020-10-30 01:11:58
您可以使用多态性来实现这一点:定义BaseParam和BaseAlarm类,并将指向它们的指针的vector用作函数的参数。
或者,您可以使用std::variant的vector
https://stackoverflow.com/questions/64595758
复制相似问题