Могу ли я получить полиморфное поведение без использования виртуальных функций?

Из-за своего устройства я не могу использовать виртуальные функции. Предположим, у меня есть:

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 ?

Я знаю, что могу просто поместить виртуальный перед doSomething () из База решает проблему, но я ограничен своим устройством, компилятор его не поддерживает.

18
задан James McNellis 29 September 2010 в 22:46
поделиться