Я работаю над собственной системой меню в OpenGL.Я хочу, чтобы все мои объекты, связанные с меню, были в одном векторе, поэтому я мог бы просто зациклить их все так:
for (auto i : menuObjects)
{
i.checkInputs();
i.draw();
}
Я пробовал с другими методами зацикливания, даже имеяthis->draw();
внутри функции базового класса, но это, очевидно, закончилось бесконечным циклом.
Мой базовый класс в основном такой:
class menuObject
{
public:
virtual void draw() { }
virtual void checkInputs() { }
};
А унаследованные классы такие:
class Button : public menuObject
{
public:
void draw()
{
... drawing here ...
}
void checkInputs()
{
... checking inputs here ...
}
};
А вот как я могу сохранить их в своем векторе:
std::vector<menuObject> menuObjects = {
Button(... parameters here ...)
};
Он никогда не переходит к перегруженной функции.Я бы предпочел не иметь каждый отдельный объект меню в своем собственном векторе.Есть идеи?<3 </p>