如何在C++中定义公共接口
How to define common interface in C++
我在 C++ 中有以下摘要 class
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;
}
我的意图是这个抽象 class 将成为所有人的通用接口
我的应用中的各种电力电子转换器。不幸的是我有
遇到问题如何模拟各种电力电子设备的情况
转换器有一组参数和一组警报,但其中的项目
集取决于每种类型的转换器。所以我不知道如何完全声明
方法 confirmAlarm
和 notifyParameterChange
因为我不知道该怎么做
声明形式参数的类型。我可能需要定义一些类型
它将模拟一个公共参数列表和公共警报列表。任何人都可以
给我一个建议该怎么做?提前感谢您的任何想法。
您可以使用多态性来做到这一点:定义 BaseParam
和 BaseAlarm
类 并使用 vector
指向它们的指针作为函数的参数。
或者,您可以使用 vector
或 std::variant
我在 C++ 中有以下摘要 class
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;
}
我的意图是这个抽象 class 将成为所有人的通用接口
我的应用中的各种电力电子转换器。不幸的是我有
遇到问题如何模拟各种电力电子设备的情况
转换器有一组参数和一组警报,但其中的项目
集取决于每种类型的转换器。所以我不知道如何完全声明
方法 confirmAlarm
和 notifyParameterChange
因为我不知道该怎么做
声明形式参数的类型。我可能需要定义一些类型
它将模拟一个公共参数列表和公共警报列表。任何人都可以
给我一个建议该怎么做?提前感谢您的任何想法。
您可以使用多态性来做到这一点:定义 BaseParam
和 BaseAlarm
类 并使用 vector
指向它们的指针作为函数的参数。
或者,您可以使用 vector
或 std::variant