Самое близкое, что я могу получить к тому, что вы ищете, это:
class Class1;
class Base
{
public:
Base* next;
operator Class1*()
{
return (Class1*)this;
}
};
class Class1 : public Base
{
};
и
Base* pBase = new Base();
Class1* pTest = new Class1();
pBase->next = pTest;
Class1* pClass1;
pClass1 = *pBase->next;
Но с C ++ это действительно мешает так, что вы будете платить за это позже. Просто воспользуйтесь одним из приведений, упомянутых Патриком.