我正在为一家公司做一个更复杂的系统。我有分配为每个保留一个循环(绘图,更新)。但是他们的系统要求我扩展基类以进行不同的计算;并且会有几个扩展器。我测试的是 - >
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。有谁知道我怎么能做到这一点?