class event { event
protected:
event(event* x) : ev(x) {}
public:
int type() { return ev->type(); }
void* rawevent() { return ev; }
private:
event* ev;
};
class xevent : public event { X
public:
int type() { return X->type(); }
private:
struct XEvent* X;
};
slide: Hiding in C++