#pragma once #include class Model; class View { protected: int ref; public: View(); virtual ~View(); virtual void update( Model *m ) = 0; View *getThis(); View *release(); }; class ActionView : public View { private: std::function< void( Model * ) > f; public: ActionView( std::function< void( Model * ) > f ); void update( Model *m ) override; };