c++ - 如何在 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;
}
我的意图是这个抽象类将成为我应用程序中各种电力电子转换器的通用接口。不幸的是,当各种电力电子转换器具有一组参数和一组警报但这些组的项目取决于每种类型的转换器时,我遇到了一个问题,如何模拟一种情况。所以我不知道如何完全声明方法confirmAlarm
,notifyParameterChange
因为我不知道如何声明形式参数的类型。我可能需要定义一些类型来模拟一个常见的参数列表和常见的警报列表。谁能给我一个建议如何做到这一点?提前感谢您的任何想法。
解决方案
您可以使用多态性来做到这一点:定义BaseParam
和BaseAlarm
类并使用vector
指向它们的指针作为函数的参数。
或者,您可以使用vector
std ::variant
推荐阅读
- c# - 在组合框 wpf 中检查空值时异常不起作用
- python - 尝试使用 selenium (Python) 单击验证码框时出错
- python - 如何将命名变量传递给python中的bash脚本?
- java - 如何从嵌套的 json volley/android 中检索数据
- python-3.x - 尝试在 python 3.9.4 上安装(py -m pip install tables)时出现问题
- go - Sentry CaptureMessage 不刷新
- python - Python Pyinstaller MSYS 问题与 PyQtWebKit
- reactjs - 如何在使用 React Chrome 扩展程序打开页面之前显示弹出窗口?
- c++ - 为什么qt不进入foreach循环?
- kubeflow - 如何在 kubeflow 中跨多个组件使用 OutputPath