Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Menu_Item
- {
- public:
- Menu_Item(string const& t) : title(t) {}
- virtual ~Menu_Item() = default;
- virtual void execute() = 0;
- private:
- string title;
- };
- class Menu : public Menu_Item
- {
- public:
- Menu(string const& t) : Menu_Item(t) {}
- ~Menu() { /* delete all items in list */ }
- void add_menu_item(Menu_Item* i) { item_list.push_back(i); }
- void execute() { /* user chose one menu item and execute i */ }
- private:
- vector<Menu_Item*> item_list;
- };
- int main()
- {
- Menu_Item* start { new Menu("Start") };
- start->add_menu_item(new Load_Game("Läs in sparat spel"));
- start->add_menu_item(new Save_Game("Spara spelet"));
- start->add_menu_item(new Highscore("Poängställning"));
- Menu_Item* options { new Meny("Alternativ...") };
- start->add_menu_item(options);
- options->add_menu_item(new Keyboard_Settings("Tangentbordsalternativ"));
- options->add_menu_item(new Graphic_Settings("Grafikalternativ"));
- options->add_menu_item(new Sound_Settings("Ljudalternativ"));
- start->execute();
- delete start;
- }
- /**
- Om destruktorn inte är virtuell, kommer den bara kallas för basklassen, och inte
- för subklasserna. Detta skapar minnesläckor.
- **/
Advertisement
Add Comment
Please, Sign In to add comment