gpt4 book ai didi

c++:继承和模板性能权衡

转载 作者:行者123 更新时间:2023-11-30 02:04:49 25 4
gpt4 key购买 nike

昨天有人问我一个问题,使用继承和模板之间的性能权衡是什么?

我说过在虚函数的情况下,动态链接在继承时会导致一些性能问题。但是,使用模板时,专用类将在编译时自行生成,因此除了可执行文件的大小随着专用类的数量增加外,没有性能问题。

谁能解释一下这里是否还有其他需要考虑的事情?

谢谢!拉胡尔。

最佳答案

首先,在我看来,继承和模板是相互正交的(有关这方面的章节,请参阅 OOSC)。在 C++ 中,权衡基本上归结为:

  • 模板在可执行文件中需要空间,因为每个特化需要生成代码。
  • 使用虚函数的继承需要一个虚表,所有非静态方法调用都需要一个额外的参数(this),并且对虚函数的调用必须通过虚表进行间接调用。

所以这是空间与速度的对比。但是您可以在同一类中同时拥有两者的优点和缺点(请参阅我的第一句话 - 这些功能在他们想要达到的目标方面是正交的)。

关于c++:继承和模板性能权衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10152182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com