You do not have to use new to use polymorphism.
All you need is a pointer or reference to the base class. Thus this will work:
Furthermore, using delete this is something I would not recommend.Code:Derived a; Base* pa = &a; pa->myfunction(); // Or Base& ra = a; ra.myfunction();
If you don't want to do manual deleting, then use smart pointers.