比特场与游戏地图对象属性的多态性

时间:2010-09-17 02:07:57

标签: c++ optimization polymorphism bit-manipulation bit-fields

这个优化问题在最后一天一直困扰着我。

在我的程序(一个简单的roguelike游戏)中,我使用按位标记来存储地图对象的属性,例如它们是否是实体,或者它们是否被渲染。但是,我可以使用多态来完成返回适当值的事情。

我的问题是,在链表循环中使用时,是否比其他方式明显更快或更慢?另外,这是一种比另一种更好的做法吗?

代码示例:

XMapObject *List = ListStart;

while(List != NULL)
{
    if(List->MapObjectFlags & MAPOBJECTFLAG_RENDER)
      OR
    if(List->Render())
    {
        return List->Type;
    }
    else
    {
        List = List->Next;
    }
}

bool XMapObject::Render()
{
     return 1;
}

感谢。

1 个答案:

答案 0 :(得分:1)

按位操作总是比虚函数调用快。