如何解决内部具有不同类型的类型数组
我正在创建一个类类型 (Button) 的数组,我希望在数组 ButtonButtonMb 的子类/em> 那可能吗? 我试图有两个不同的构造函数并且只使用一个类,但由于参数数量相同,我无法到达任何地方。
typedef void (*Callback)(void);
typedef int (*CallbackInt)(void);
class Button {
public:
OneButton _pin;
Button(uint8_t pin,Callback click=NULL,Callback longCl=NULL,Callback dblCl=NULL);
void loop();
};
class ButtonMb : public Button {
public:
CallbackInt _pinState;
ButtonMb(CallbackInt pinState,Callback dblCl=NULL);
void loop();
};
Button buttons[2] = {
Button(14),ButtonMb([](){return slaves[0].getState("A15");)
};
有什么帮助吗?
注意:我使用的是 Arduino,因此代码可能会受到限制。
解决方法
您可以创建指针数组,而不是使用对象数组。基类的指针可以指向派生类,因此你可以在一个数组中拥有指向不同类型对象的指针。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。