微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

内部具有不同类型的类型数组

如何解决内部具有不同类型的类型数组

我正在创建一个类类型 (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 举报,一经查实,本站将立刻删除。