You have two main options that I can think of.
funcTwo , . , , , , -, funcTwo Base, Derived2 Derived3. , API , , , .
:
class Base() {virtual void funcTwo() {throw runtime_error("This should not be called");};
Base *d1 = new Derived1;
Base *d2 = new Derived2;
d1->funcTwo();
d2->funcTwo();
funcTwo Derived1. Derived1, , dynamic_cast, . , Base:: funcTwo , , .
Base *b = new Derived1;
Derived1 *d1 = new Derived1;
Base *d2 = new Derived2;
d1->funcTwo();
if ((d1 = dynamic_cast<Derived1*>(b)) d1->funcTwo();
if ((d1 = dynamic_cast<Derived1*>(d2)) d1->funcTwo();
b->funcTwo();