重新构建二进制或派生类以在基类中添加新方法

时间:2016-05-13 07:23:44

标签: c++ virtual abi

之前发布了一些类似的问题,但我无法看到我的具体要求的答案。

我有一个基类,它被编译成一个共享库(.so)。这个库已被使用,并且有一些类派生自我的基础并使用我的基类的虚函数。

现在我需要修改我的基类来添加一个内部使用的新方法(NON-VIRTUAL)。然后我将重新编译共享库。

派生类是否需要重新编译? 是否需要重新编译使用派生类和共享库创建的二进制文件?

1 个答案:

答案 0 :(得分:1)

在您的情况下,您不需要重新编译派生类。只有在从头文件(在派生类中使用)中获得的类的二进制结构的知识发生更改时,才需要重新编译。发生这种情况

  • 添加了数据成员
  • 对Vtable(虚拟功能的更改)
  • 进行了修改
  • 对现有功能签名进行修改
  • 对内联函数的更改

既然这里都没有,你应该没事。 参考from here