У меня есть две структуры, которые наследуются друг от друга, и родительская структура, которая не имеет отношения к этим структурам, но управляет std::vector
указателями для основного класса.Вот некоторый код.
Определение родительского класса:
struct Widget {
virtual void inflate();
}
Определение дочернего класса:
struct Label : public Widget {
void inflate();
}
Реализации функций:
void Label::inflate(){
std::cout << "Child function called" << std::endl;
}
void Widget::inflate(){
std::cout << "Parent function called" << std::endl;
}
Использование:
std::vector<Widget*> widgets = std::vector<Widget*>();
Label1 = Label();
Label2 = Label();
widgets.push_back(Label1);
widgets.push_back(Label2);
int i = 0;
while(i < widgets.size()){
widgets[i]->inflate();
i++;
}
Вывод:
Parent function called
Parent function called
Спасибо