0

I'm doing a menu in which each item open a different page. The id of the selected menu item correspond to the panel id. I think I'm doing it the wrong way but is it possible to do this like that :

class Panel
{
public:
  const char* name;
  int id;
  Panel(const char* name, int id) : name(name), id(id) { }
};

class SpecialPanel1 : public Panel
{
  SpecialPanel1(const char* name, int id) : Panel(name, id) { }

  void draw()
  {
    //some code
  }
};

class SpecialPanel2 : public Panel
{
  SpecialPanel2(const char* name, int id) : Panel(name, id) { }

  void draw()
  {
    //some code
  }
};

int main()
{
  int visiblePanel_id = 1;

  //big array of various panels
  Panel panels[2] = {
    SpecialPanel1 ("", 1),
    SpecialPanel2 ("", 2),
    //....
  };

  for (Panel p : panels) {
    if (p.id == visiblePanel_id) p.draw();
  }

  return 0;
}

I decided to put all the panels together in a array to make the code cleaner and avoid a switch statement but now I can't access to the draw function.

sta
  • 23
  • 3

0 Answers0