How is this code on the Actor object to keep track of Time objects? It feels like you could use just a pointer to a TimeBase object and create the Actor objects passing TimeImpl1 and TimeImpl2 which derive from TimeBase.
I use something like that with Renderers. All my renderer objects inherit from a RendererBase and each rendereable class has a pointer to a RendererBase object. Take a look at dependency injection.