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

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

inno setup - TLabel or TNewStaticText - change .Font.Style on Focus like Cursor changes with .Cursor -