【问题标题】:Should I recompile class implementation when non virtual function changes to virtual function?当非虚函数更改为虚函数时,我应该重新编译类实现吗?
【发布时间】:2016-07-26 07:14:12
【问题描述】:

我有一个旧的静态库(类实现),我想将类中的非虚函数更改为虚函数,我应该重新编译库吗?

【问题讨论】:

  • 添加了vtable,因为 vtable 布局受到影响。

标签: c++ virtual-functions vtable binary-compatibility memory-layout


【解决方案1】:

是的。您必须重新编译库使用它的应用程序。

【讨论】:

    【解决方案2】:

    我想添加更多的推理来回答@jesper 是的,因为现在 vtable 中每个新虚函数都会有新条目,因此必须重新编译。

    【讨论】:

    • 并且,因为现在对它的所有调用都必须通过 VFT。
    • 是的!每次调用此类对象时都会查找 VFT。
    猜你喜欢
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    相关资源
    最近更新 更多