代码之家  ›  专栏  ›  技术社区  ›  Anzurio

正在从中删除已编译的方法。h文件及其后果

  •  0
  • Anzurio  · 技术社区  · 15 年前

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

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

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

    2 回复  |  直到 15 年前
        1
  •  7
  •   Alex Martelli    15 年前

    对于大多数C++编译器:如果该方法是虚拟的,那么你将遇到严重的麻烦(VTABLE会被搞乱);如果这个方法不是虚拟的,你就不应该是虚拟的(但一些聪明的用户会通过“通过模糊的安全性”推断出你试图隐藏的东西的存在,并找到方法来使用你宁愿对他隐藏的方法——但这是另一个故事;-)。

        2
  •  6
  •   Brian R. Bondy    15 年前

    更安全的方法是简单地生成一个派生类并给出该派生类的名称。h只适用于某些人。