На всякий случай тут оставлю, вдруг кому пригодится
typedef void (*ButtonPush)(void); // тип - указатель для Callback-функции
class Button {
public:
virtual void push() = 0;
};
class PowerButton : public Button {
public:
void push() override {
shutdown();
}
};
class OnButton : public Button {
public:
void push() override {
ondown();
}
};
class TButton {
public:
TButton(ButtonPush callback) {
_callback = callback;
}
void push() {
_callback();
}
private:
ButtonPush _callback = nullptr;
};
void shutdown() {
Serial.println("shutdown");
}
void ondown() {
Serial.println("ondown");
}
void CreateDevices() {
PowerButton Button1;
Button1.push();
OnButton Button2;
Button2.push();
TButton Button3(shutdown);
Button3.push();
TButton Button4(ondown);
Button4.push();
}