1 // { dg-do assemble } 2 // prms-id: 3764 3 4 class Menu; 5 class MenuItem; 6 7 class MenuAction { 8 public: 9 virtual void execute (Menu& menu, MenuItem& menuItem) = 0; 10 protected: MenuAction()11 MenuAction () {} 12 }; 13 14 class Test { 15 class MenuCBA : public MenuAction { 16 public: 17 typedef void (Test::* MenuCBA_Member) (Menu& menu, MenuItem& menuItem) ; MenuCBA(Test & instance,MenuCBA_Member member)18 MenuCBA(Test& instance, MenuCBA_Member member) 19 : _instance(&instance), _member(member) { } 20 void execute(Menu& menu, MenuItem& menuItem); 21 private: 22 MenuCBA_Member _member; 23 Test *_instance; 24 }; 25 }; 26