Могу ли я получить полиморфное поведение без использования виртуальных функций?
Из-за моего устройства я не могу использовать виртуальные функции. Предположим, у меня есть:
class Base
{
void doSomething() { }
};
class Derived : public Base
{
void doSomething() { }
};
// in any place
{
Base *obj = new Derived;
obj->doSomething();
}
obj->doSomething()
назову толькоBase::doSomething()
Есть ли способ сBase *obj
, чтобы позвонитьdoSomething
изDerived
?
Я знаю, я могу просто поставитьvirtual
доdoSomething()
изBase
это решает проблему, но я ограничен моим устройством, компилятор не поддерживает его.