0

我有一个一直存在的二进制文件。它有一个 C 类,它也一直存在。我们必须在类 C 中引入一个新的方法 M,但我们只希望一些用户知道这种方法 M 的存在。

通过从 .h 文件中删除这种方法,我们可以引入哪个问题?这种方法会向后兼容吗?

编辑:我们实际上不在乎是否有办法找到方法。我们只是想确保只有知道自己在做什么的人才能使用它。

4

2 回答 2

7

对于大多数 C++ 编译器:如果方法是虚拟的,您将遇到严重的麻烦(vtable 将全部混乱);如果该方法不是虚拟的,则您不应该是虚拟的(但是一些聪明的用户会通过“通过默默无闻的安全性”推断出您试图隐藏的内容的存在,并找到使用您宁愿对他隐藏的方法的方法- - 但那是另一个故事;-)。

于 2009-07-15T03:35:23.613 回答
6

一种更安全的方法是简单地创建一个派生类并将其 .h 仅提供给某些人。

于 2009-07-15T03:34:02.120 回答