二进制兼容性因虚函数而中断

时间:2012-02-16 16:40:33

标签: c++ vtable

我遇到了这篇二进制兼容性文章binary_compatibiliy_new_virtuals_to_a_non-leaf_class 如果我有一个linux软件,它有多个共享库和一个二进制文件正在加载所有这些库。我在一个类中添加了一个虚函数,它只在一个共享库中使用。这个链接中提到的这一点是否仍然有效?   根据我的理解,虚拟表存在于共享库中,如果我正在进行任何不会被外界触及的更改,那么我不应该担心这种更改的二进制兼容性。

1 个答案:

答案 0 :(得分:1)

如果你有一个使用该特定类的外部客户端(没有重新编译),你将破坏二进制兼容性。因此,在您的情况下,.so文件中更改的类要么不作为外部接口的一部分公开,要么不被您的应用程序使用。在任何一种情况下,您的应用都将继续运行。