Указатель на расширение структур с использованием одного массива

Я делаю более сложную систему для компании. У меня есть задание сохранить один цикл для каждого (Draw, Update). Однако их система требует от меня расширить базовый класс для различных вычислений; и будет несколько расширителей. Что я сделал, чтобы проверить это было ->

struct base_line
{
    template<typename a> bool operator+=(a b){bs[0] = b;}
    virtual void foo(){}
    base_line *bs[2];
};

struct base : base_line
{
    virtual void foo(){
        printf("Nice\n");
    }
};

base_line bse;
base bser;

int _tmain(int argc, _TCHAR* argv[])
{
    bse+=bser;
    while(true)
    {
        if(bse.bs[0]){
            bse.bs[0]->foo();
        }
    }
    return 0;
}

однако, конечно, вы не можете конвертировать из base в base_line *. Что в основном разрушает то, что я пытаюсь достичь; Ранее показанный код должен запускать виртуальную функцию foo(); печать Ницца \n. Кто-нибудь знает, как я могу это сделать?

0 ответов

Другие вопросы по тегам