问题描述
我正在创建一个类类型 (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,因此代码可能会受到限制。
解决方法
您可以创建指针数组,而不是使用对象数组。基类的指针可以指向派生类,因此你可以在一个数组中拥有指向不同类型对象的指针。