相关文章  
  • 下一代开源技术的结晶――FedoraCore6
  • qmail+vpopmail+sqwebmail的安装步骤(上)
  • Linux操作系统下双启动环境的陷阱问题(下)
  • 在Linux环境中如何配置WU-FTP服务器(1)
  • 在Linux环境中如何配置WU-FTP服务器(2)
  • Linux系统编程之C++游戏程序优化(5)
  • Linux操作系统内核对RTC的编程详解(2)
  • 双赢协议:微软为何将不会攻击Linux
  • Linux系统PDA软件开发环境的构建(1)
  • 超线程加快Linux操作系统的速度(下)(4)
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    Linux系统编程之C++游戏程序优化(3)6

    _NOBR>

    一个更激进的方法是重新规划你的类继承树,如果Class1和Class2只有一点点不同,那么可以把它们捆绑到同一个类中去,而用一个Flag来表明它将象Class1还是象Class2一样工作,同时在BaseClass中把纯虚函数去掉。这样的话,也可以象前面的例子一样把GetPointer写成内联。这种变通看起来不是很高雅,但是在缺少Cache的机器上跑内循环时,你可能会很愿意为了去掉虚函数调用而把事情做得更加难看。

    虽然每一个新的虚函数都只给每个类的虚表增加了一个指针的尺寸(通常是可以忽略的代价),第一个虚函数还是在每一个对象上要求了一个指向虚表的指针。这就是说你在很小的、频繁使用的类上使用任何虚函数而造成了额外的负担,这些都是不能接受的。由于继承一般都要用到一个或几个虚函数(至少有一个虚的析构函数),所以你没必要在小而频繁使用的对象上使用任何继承。


    页码:[1] [2] [3] [4] [5] [6] [7]6页、共7页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved