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

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

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, это решит проблему, но я ограничен моим устройством, компилятор его не поддерживает.

Ответы [ 11 ]

0 голосов
/ 29 сентября 2010

Нет простого способа сделать это без виртуальных методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...