class CCoroutine { public: CCoroutine(); virtual ~CCoroutine(); static CCoroutine *initialize(); virtual void go() = 0; virtual void resume(CCoroutine *next) = 0; };