2014年1月3日

C++的静态分发(CRTP)和动态分发(虚函数多态)的比较

摘要: 虚函数是C++实现多态的工具,在运行时根据虚表决定调用合适的函数。这被称作动态分发。虚函数很好的实现了多态的要求,但是在运行时引入了一些开销,包括: 对每一个虚函数的调用都需要额外的指针寻址 虚函数通常不能被inline,当虚函数都是小函数时会有比较大的性能损失 每个对象都需要有一个额外的指针指向虚表 所以如果是一个对性能要求非常严格的场合,我们就需要用别的方式来实现分发,... 阅读全文

posted @ 2014-01-03 20:22 fresky 阅读(5152) 评论(1) 推荐(0) 编辑

导航