rendered paste bodyclass Widget{public: Widget(); virtual ~Widget(); virtual void draw(); virtual void update();protected: Widget *parent;};class compositeWidget : public widget{public: virtual void draw() { //some drawing code for (int i = 0; i < widgets.size(); i++) widgets[i]->draw(); } virtual void update() { //some drawing code for (int i = 0; i < widgets.size(); i++) widgets[i]->update(); } virtual void add(Widget *widget) { widget->parent = this; widgets.push_back(widget); } private: std::vector<Widget *> widgets;};