c++ - Initialize vectors in classes -
is possible initialize vector in sruct or class. here example how want make work
class menuitem { std::string name; // name of menu item void (*func)(); // function of menu item menupage* subpage; // pointer submenu }; class menupage { std::string menutitle; std::vector<menuitem> menuitems; }; static const menupage menumain = { "main menu", {{ "item1", 0, 0 }, { "item2", 0, 0 }, { "item3", 0, 0 }} };
this structure should represent dynamic console menu in windows. use singleton pattern access menu. membervar of type menupage* saved menu entry point in object.
so if isn't possible, alternative methods advise?
make members public
, initialized in c++11. otherwise can use initializer list , constructor:
class menupage { std::string menutitle; std::vector<menuitem> menuitems; public: menupage (std::string s, std::vector<menuitem> m) : menutitle(s), menuitems(m) {} }; static const menupage menumain ( "main menu", {{ "item1", 0, 0 }, { "item2", 0, 0 }, { "item3", 0, 0 }} );
note that, should same thing fot menuitem
.
Comments
Post a Comment