can't understand how to properly inherit objects. There is my code:
#include <ArduinoSTL.h>
class Element {
public:
Element() {
};
virtual void execute() {
Serial.print("element\n");
}
};
class ExtendedElement : public Element {
public:
ExtendedElement() : Element() {
}
virtual void execute() {
Serial.print("extended element\n");
}
};
class Wrapper {
private:
std::vector<Element> elements;
public:
void execute() {
for (Element element : elements) {
element.execute();
}
}
void addTask(Element element) {
elements.push_back(element);
}
};
Wrapper wrapper;
void setup() {
Serial.begin(9600);
ExtendedElement extendedElement = new ExtendedElement();
wrapper.addTask(extendedElement);
}
void loop() {
wrapper.execute();
}
So, I want to extend class, create an instance of this extended class, and put such instance into vector of base class. Then I want to iterate over elements in vector, and call child class function. Can't understand what I'm doing wrong.