Reusable Class - Using "abstract" instead of pre-defined
===

I am building an application where there are multiple classes that inherit from a single base class. Let's say I have this declaration:

    ref class WorkScreenBase abstract
    {
    internal:
       WorkScreenBase(void);
       bool isLoaded;
    }

I have several classes that implement it, for example:

    ref class MainScreen : public WorkScreenBase
    {
    internal:
       MainScreen(void);
       ~MainScreen(void);
    }

In another part of the application, I want to have a container for any potential implementation of `WorkScreenBase`, so I am trying to use:

    WorkScreenBase^ myCurrentBase;

However, it appears that this would be illegal. What would be the best way to approach the problem?
