0

我正在为一家公司做一个更复杂的系统。我的任务是为每个(绘制,更新)保留一个循环。然而,他们的系统要求我为不同的计算扩展基类;并且会有几个扩展器。我所做的测试是->

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。有谁知道我怎么能做到这一点?

4

0 回答 0